* [PATCH v14 0/2] Rust GPU buddy allocator bindings
@ 2026-03-20 4:57 Joel Fernandes
2026-03-20 4:57 ` [PATCH v14 1/2] rust: gpu: Add " Joel Fernandes
` (6 more replies)
0 siblings, 7 replies; 13+ messages in thread
From: Joel Fernandes @ 2026-03-20 4:57 UTC (permalink / raw)
To: linux-kernel
Cc: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning,
dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula,
Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui,
Matthew Auld, Matthew Brost, Lucas De Marchi,
Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng,
John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer,
Alexandre Courbot, Andrea Righi, Andy Ritger, Zhi Wang,
Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi,
Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe,
linux-fbdev, Joel Fernandes
This patch adds safe Rust abstractions over the Linux kernel's GPU buddy
allocator for physical memory management. The prerequisite infrastructure
patches (DRM buddy code movement and the uninitialized buddy fix) have been
absorbed into upstream -next, so this is now a set of standalone patches.
The series along with all dependencies, including clist and nova-core mm
patches, are available at:
git://git.kernel.org/pub/scm/linux/kernel/git/jfern/linux.git (tag: buddy-bindings-v14-20260319)
Change log:
Changes from v13 to v14:
- Changed clist_create! call site to use explicit unsafe{} block.
- Various changes to change to Range type for ranges (Alex).
- Renamed GpuBuddyParams::physical_memory_size to size (Alex).
- Changed GpuBuddyAllocFlags inner type from u32 to usize (Alex).
- Renamed free_memory() to avail() (Alex).
- Various nits (Alex).
Changes from v12 to v13:
- Split MAINTAINERS reviewer update into a separate patch (Danilo).
- Adjustments to use the Alignment type chunk size parameters (Alex).
- Fixed doctest assertion due to blocks landing on top of range.
- Changed chunk_size local vars to Alignment.
- Changed block size to u64 from usize.
- Renamed rust/kernel/gpu/mod.rs to rust/kernel/gpu.rs.
- Several other adjustments (Alex).
Changes from v11 to v12:
- Rebased on linux-next his is now a standalone single patch as dependencies
are absorbed (but not clist is a prequisite)
- Redesigned allocation API (Alexandre Courbot) for better Rust ergonomics.
- Split single long example into 4 self-contained examples (Alexandre Courbot).
- Several safety and invariant comment changes (Danilo).
- MAINTAINERS changes (Arun, Mathew, Danilo, Dave).
- Fixed `#[cfg(CONFIG_GPU_BUDDY)]` to `#[cfg(CONFIG_GPU_BUDDY = "y")]` (Danilo Krummrich).
- Updated `ffi::clist::CListHead` to `interop::list::CListHead`.
Changes from v10 to v11:
- Dropped "rust: ffi: Convert pub use to pub mod and create ffi module" patch;
the ffi module restructuring will go through a different path.
- Dropped "rust: clist: Add support to interface with C linked lists" patch;
the clist module will be submitted separately.
- Dropped "nova-core: Kconfig: Sort select statements alphabetically" cosmetic
patch.
- Patches 1-3 (DRM buddy movement and fix) are included as reference only;
they are already being pulled into upstream via drm-misc-next.
- Removed clist patches as those can go in independently (Alice).
- Moved the Kconfig GPU_BUDDY selection patch to nova-core mm series to enable
it when it is actually used.
- Various nits to comments, etc.
Changes from v9 to v10:
- Absorbed the DRM buddy code movement patches into this series as patches 1-2.
Dave Airlie reworked these into two parts for better git history.
- Added "gpu: Fix uninitialized buddy for built-in drivers" fix by Koen Koning,
using subsys_initcall instead of module_init to fix NULL pointer dereference
when built-in drivers use the buddy allocator before initialization.
- Added "rust: ffi: Convert pub use to pub mod and create ffi module" to prepare
the ffi module for hosting clist as a sub-module.
- Moved clist from rust/kernel/clist.rs to rust/kernel/ffi/.
- Added "nova-core: Kconfig: Sort select statements alphabetically" (Danilo).
Changes from v8 to v9:
- Updated nova-core Kconfig patch: addressed sorting of Kconfig options.
- Added Daniel Almeida's Reviewed-by tag to clist patch.
- Minor refinements to GPU buddy bindings.
Changes from v7 to v8:
- Added nova-core Kconfig patch to select GPU_BUDDY for VRAM allocation.
- Various changes suggested by Danilo Krummrich, Gary Guo, and Daniel Almeida.
- Added Acked-by: Gary Guo for clist patch.
Changes from v6 to v7:
- Major restructuring: split the large 26-patch v6 RFC series. v7 only contains
the Rust infrastructure patches (clist + GPU buddy bindings), extracted from
the full nova-core MM series. The nova-core MM patches follow separately.
- Rebased on linux-next.
Changes from v5 to v6:
- Rebased on drm-rust-kernel/drm-rust-next.
- Expanded from 6 to 26 patches with full nova-core MM infrastructure including
page table walker, VMM, BAR1 user interface, TLB flush, and GpuMm manager.
Changes from v4 to v5:
- Added PRAMIN aperture support with documentation and self-tests.
- Improved buddy allocator bindings (fewer lines of code).
- Based on drm-rust-next instead of linux-next.
Changes from v3 to v4:
- Combined the clist and DRM buddy series into a single coherent series.
- Added DRM buddy allocator movement from drivers/gpu/drm/ up to drivers/gpu/,
renaming API from drm_buddy to gpu_buddy.
- Added Rust bindings for the GPU buddy allocator.
Changes from v2 to v3:
- Squashed 3 clist patches into one due to inter-dependencies.
- Changed Clist to Clist<'a, T> using const generic offset (Alex Courbot).
- Simplified C helpers to only list_add_tail (Alex Courbot, John Hubbard).
- Added init_list_head() Rust function (Alex Courbot).
- Added FusedIterator, PartialEq/Eq impls.
- Added MAINTAINERS entry (Miguel Ojeda).
Changes from v1 (RFC) to v2:
- Dropped DRM buddy allocator patches; series focuses solely on clist module.
- Dropped sample modules, replaced with doctests.
- Added proper lifetime management similar to scatterlist.
- Split clist into 3 separate patches.
Link to v13: https://lore.kernel.org/all/20260317220323.1909618-1-joelagnelf@nvidia.com/
Joel Fernandes (2):
rust: gpu: Add GPU buddy allocator bindings
MAINTAINERS: gpu: buddy: Update reviewer
MAINTAINERS | 8 +-
rust/bindings/bindings_helper.h | 11 +
rust/helpers/gpu.c | 23 ++
rust/helpers/helpers.c | 1 +
rust/kernel/gpu.rs | 6 +
rust/kernel/gpu/buddy.rs | 613 ++++++++++++++++++++++++++++++++
rust/kernel/lib.rs | 2 +
7 files changed, 663 insertions(+), 1 deletion(-)
create mode 100644 rust/helpers/gpu.c
create mode 100644 rust/kernel/gpu.rs
create mode 100644 rust/kernel/gpu/buddy.rs
--
2.34.1
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v14 1/2] rust: gpu: Add GPU buddy allocator bindings 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes @ 2026-03-20 4:57 ` Joel Fernandes 2026-03-20 12:16 ` Alexandre Courbot 2026-03-20 13:04 ` Gary Guo 2026-03-20 4:57 ` [PATCH v14 2/2] MAINTAINERS: gpu: buddy: Update reviewer Joel Fernandes ` (5 subsequent siblings) 6 siblings, 2 replies; 13+ messages in thread From: Joel Fernandes @ 2026-03-20 4:57 UTC (permalink / raw) To: linux-kernel Cc: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Alexandre Courbot, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi, Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe, linux-fbdev, Joel Fernandes Add safe Rust abstractions over the Linux kernel's GPU buddy allocator for physical memory management. The GPU buddy allocator implements a binary buddy system useful for GPU physical memory allocation. nova-core will use it for physical memory allocation. Cc: Nikola Djukic <ndjukic@nvidia.com> Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> --- MAINTAINERS | 6 + rust/bindings/bindings_helper.h | 11 + rust/helpers/gpu.c | 23 ++ rust/helpers/helpers.c | 1 + rust/kernel/gpu.rs | 6 + rust/kernel/gpu/buddy.rs | 613 ++++++++++++++++++++++++++++++++ rust/kernel/lib.rs | 2 + 7 files changed, 662 insertions(+) create mode 100644 rust/helpers/gpu.c create mode 100644 rust/kernel/gpu.rs create mode 100644 rust/kernel/gpu/buddy.rs diff --git a/MAINTAINERS b/MAINTAINERS index e847099efcc2..cd9505d3be60 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8531,7 +8531,10 @@ T: git https://gitlab.freedesktop.org/drm/rust/kernel.git F: drivers/gpu/drm/nova/ F: drivers/gpu/drm/tyr/ F: drivers/gpu/nova-core/ +F: rust/helpers/gpu.c F: rust/kernel/drm/ +F: rust/kernel/gpu.rs +F: rust/kernel/gpu/ DRM DRIVERS FOR ALLWINNER A10 M: Chen-Yu Tsai <wens@kernel.org> @@ -8952,6 +8955,9 @@ F: drivers/gpu/drm/drm_buddy.c F: drivers/gpu/tests/gpu_buddy_test.c F: include/drm/drm_buddy.h F: include/linux/gpu_buddy.h +F: rust/helpers/gpu.c +F: rust/kernel/gpu.rs +F: rust/kernel/gpu/ DRM AUTOMATED TESTING M: Helen Koike <helen.fornazier@gmail.com> diff --git a/rust/bindings/bindings_helper.h b/rust/bindings/bindings_helper.h index 083cc44aa952..dbb765a9fdbd 100644 --- a/rust/bindings/bindings_helper.h +++ b/rust/bindings/bindings_helper.h @@ -29,6 +29,7 @@ #include <linux/hrtimer_types.h> #include <linux/acpi.h> +#include <linux/gpu_buddy.h> #include <drm/drm_device.h> #include <drm/drm_drv.h> #include <drm/drm_file.h> @@ -146,6 +147,16 @@ const vm_flags_t RUST_CONST_HELPER_VM_MIXEDMAP = VM_MIXEDMAP; const vm_flags_t RUST_CONST_HELPER_VM_HUGEPAGE = VM_HUGEPAGE; const vm_flags_t RUST_CONST_HELPER_VM_NOHUGEPAGE = VM_NOHUGEPAGE; +#if IS_ENABLED(CONFIG_GPU_BUDDY) +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_RANGE_ALLOCATION = GPU_BUDDY_RANGE_ALLOCATION; +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_TOPDOWN_ALLOCATION = GPU_BUDDY_TOPDOWN_ALLOCATION; +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CONTIGUOUS_ALLOCATION = + GPU_BUDDY_CONTIGUOUS_ALLOCATION; +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CLEAR_ALLOCATION = GPU_BUDDY_CLEAR_ALLOCATION; +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CLEARED = GPU_BUDDY_CLEARED; +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_TRIM_DISABLE = GPU_BUDDY_TRIM_DISABLE; +#endif + #if IS_ENABLED(CONFIG_ANDROID_BINDER_IPC_RUST) #include "../../drivers/android/binder/rust_binder.h" #include "../../drivers/android/binder/rust_binder_events.h" diff --git a/rust/helpers/gpu.c b/rust/helpers/gpu.c new file mode 100644 index 000000000000..38b1a4e6bef8 --- /dev/null +++ b/rust/helpers/gpu.c @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include <linux/gpu_buddy.h> + +#ifdef CONFIG_GPU_BUDDY + +__rust_helper u64 rust_helper_gpu_buddy_block_offset(const struct gpu_buddy_block *block) +{ + return gpu_buddy_block_offset(block); +} + +__rust_helper unsigned int rust_helper_gpu_buddy_block_order(struct gpu_buddy_block *block) +{ + return gpu_buddy_block_order(block); +} + +__rust_helper u64 rust_helper_gpu_buddy_block_size(struct gpu_buddy *mm, + struct gpu_buddy_block *block) +{ + return gpu_buddy_block_size(mm, block); +} + +#endif /* CONFIG_GPU_BUDDY */ diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c index 724fcb8240ac..a53929ce52a3 100644 --- a/rust/helpers/helpers.c +++ b/rust/helpers/helpers.c @@ -32,6 +32,7 @@ #include "err.c" #include "irq.c" #include "fs.c" +#include "gpu.c" #include "io.c" #include "jump_label.c" #include "kunit.c" diff --git a/rust/kernel/gpu.rs b/rust/kernel/gpu.rs new file mode 100644 index 000000000000..1dc5d0c8c09d --- /dev/null +++ b/rust/kernel/gpu.rs @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0 + +//! GPU subsystem abstractions. + +#[cfg(CONFIG_GPU_BUDDY = "y")] +pub mod buddy; diff --git a/rust/kernel/gpu/buddy.rs b/rust/kernel/gpu/buddy.rs new file mode 100644 index 000000000000..fdf1fcc2dcee --- /dev/null +++ b/rust/kernel/gpu/buddy.rs @@ -0,0 +1,613 @@ +// SPDX-License-Identifier: GPL-2.0 + +//! GPU buddy allocator bindings. +//! +//! C header: [`include/linux/gpu_buddy.h`](srctree/include/linux/gpu_buddy.h) +//! +//! This module provides Rust abstractions over the Linux kernel's GPU buddy +//! allocator, which implements a binary buddy memory allocator. +//! +//! The buddy allocator manages a contiguous address space and allocates blocks +//! in power-of-two sizes, useful for GPU physical memory management. +//! +//! # Examples +//! +//! Create a buddy allocator and perform a basic range allocation: +//! +//! ``` +//! use kernel::{ +//! gpu::buddy::{ +//! GpuBuddy, +//! GpuBuddyAllocFlags, +//! GpuBuddyAllocMode, +//! GpuBuddyParams, // +//! }, +//! prelude::*, +//! ptr::Alignment, +//! sizes::*, // +//! }; +//! +//! // Create a 1GB buddy allocator with 4KB minimum chunk size. +//! let buddy = GpuBuddy::new(GpuBuddyParams { +//! base_offset: 0, +//! size: SZ_1G as u64, +//! chunk_size: Alignment::new::<SZ_4K>(), +//! })?; +//! +//! assert_eq!(buddy.size(), SZ_1G as u64); +//! assert_eq!(buddy.chunk_size(), Alignment::new::<SZ_4K>()); +//! let initial_free = buddy.avail(); +//! +//! // Allocate 16MB. Block lands at the top of the address range. +//! let allocated = KBox::pin_init( +//! buddy.alloc_blocks( +//! GpuBuddyAllocMode::Simple, +//! SZ_16M as u64, +//! Alignment::new::<SZ_16M>(), +//! GpuBuddyAllocFlags::default(), +//! ), +//! GFP_KERNEL, +//! )?; +//! assert_eq!(buddy.avail(), initial_free - SZ_16M as u64); +//! +//! let block = allocated.iter().next().expect("expected one block"); +//! assert_eq!(block.offset(), (SZ_1G - SZ_16M) as u64); +//! assert_eq!(block.order(), 12); // 2^12 pages = 16MB +//! assert_eq!(block.size(), SZ_16M as u64); +//! assert_eq!(allocated.iter().count(), 1); +//! +//! // Dropping the allocation returns the range to the buddy allocator. +//! drop(allocated); +//! assert_eq!(buddy.avail(), initial_free); +//! # Ok::<(), Error>(()) +//! ``` +//! +//! Top-down allocation allocates from the highest addresses: +//! +//! ``` +//! # use kernel::{ +//! # gpu::buddy::{GpuBuddy, GpuBuddyAllocMode, GpuBuddyAllocFlags, GpuBuddyParams}, +//! # prelude::*, +//! # ptr::Alignment, +//! # sizes::*, // +//! # }; +//! # let buddy = GpuBuddy::new(GpuBuddyParams { +//! # base_offset: 0, +//! # size: SZ_1G as u64, +//! # chunk_size: Alignment::new::<SZ_4K>(), +//! # })?; +//! # let initial_free = buddy.avail(); +//! let topdown = KBox::pin_init( +//! buddy.alloc_blocks( +//! GpuBuddyAllocMode::TopDown, +//! SZ_16M as u64, +//! Alignment::new::<SZ_16M>(), +//! GpuBuddyAllocFlags::default(), +//! ), +//! GFP_KERNEL, +//! )?; +//! assert_eq!(buddy.avail(), initial_free - SZ_16M as u64); +//! +//! let block = topdown.iter().next().expect("expected one block"); +//! assert_eq!(block.offset(), (SZ_1G - SZ_16M) as u64); +//! assert_eq!(block.order(), 12); +//! assert_eq!(block.size(), SZ_16M as u64); +//! +//! // Dropping the allocation returns the range to the buddy allocator. +//! drop(topdown); +//! assert_eq!(buddy.avail(), initial_free); +//! # Ok::<(), Error>(()) +//! ``` +//! +//! Non-contiguous allocation can fill fragmented memory by returning multiple +//! blocks: +//! +//! ``` +//! # use kernel::{ +//! # gpu::buddy::{ +//! # GpuBuddy, GpuBuddyAllocFlags, GpuBuddyAllocMode, GpuBuddyParams, +//! # }, +//! # prelude::*, +//! # ptr::Alignment, +//! # sizes::*, // +//! # }; +//! # let buddy = GpuBuddy::new(GpuBuddyParams { +//! # base_offset: 0, +//! # size: SZ_1G as u64, +//! # chunk_size: Alignment::new::<SZ_4K>(), +//! # })?; +//! # let initial_free = buddy.avail(); +//! // Create fragmentation by allocating 4MB blocks at [0,4M) and [8M,12M). +//! let frag1 = KBox::pin_init( +//! buddy.alloc_blocks( +//! GpuBuddyAllocMode::Range(0..SZ_4M as u64), +//! SZ_4M as u64, +//! Alignment::new::<SZ_4M>(), +//! GpuBuddyAllocFlags::default(), +//! ), +//! GFP_KERNEL, +//! )?; +//! assert_eq!(buddy.avail(), initial_free - SZ_4M as u64); +//! +//! let frag2 = KBox::pin_init( +//! buddy.alloc_blocks( +//! GpuBuddyAllocMode::Range(SZ_8M as u64..(SZ_8M + SZ_4M) as u64), +//! SZ_4M as u64, +//! Alignment::new::<SZ_4M>(), +//! GpuBuddyAllocFlags::default(), +//! ), +//! GFP_KERNEL, +//! )?; +//! assert_eq!(buddy.avail(), initial_free - SZ_8M as u64); +//! +//! // Allocate 8MB, this returns 2 blocks from the holes. +//! let fragmented = KBox::pin_init( +//! buddy.alloc_blocks( +//! GpuBuddyAllocMode::Range(0..SZ_16M as u64), +//! SZ_8M as u64, +//! Alignment::new::<SZ_4M>(), +//! GpuBuddyAllocFlags::default(), +//! ), +//! GFP_KERNEL, +//! )?; +//! assert_eq!(buddy.avail(), initial_free - SZ_16M as u64); +//! +//! let (mut count, mut total) = (0u32, 0u64); +//! for block in fragmented.iter() { +//! assert_eq!(block.size(), SZ_4M as u64); +//! total += block.size(); +//! count += 1; +//! } +//! assert_eq!(total, SZ_8M as u64); +//! assert_eq!(count, 2); +//! # Ok::<(), Error>(()) +//! ``` +//! +//! Contiguous allocation fails when only fragmented space is available: +//! +//! ``` +//! # use kernel::{ +//! # gpu::buddy::{ +//! # GpuBuddy, GpuBuddyAllocFlag, GpuBuddyAllocFlags, GpuBuddyAllocMode, GpuBuddyParams, +//! # }, +//! # prelude::*, +//! # ptr::Alignment, +//! # sizes::*, // +//! # }; +//! // Create a small 16MB buddy allocator with fragmented memory. +//! let small = GpuBuddy::new(GpuBuddyParams { +//! base_offset: 0, +//! size: SZ_16M as u64, +//! chunk_size: Alignment::new::<SZ_4K>(), +//! })?; +//! +//! let _hole1 = KBox::pin_init( +//! small.alloc_blocks( +//! GpuBuddyAllocMode::Range(0..SZ_4M as u64), +//! SZ_4M as u64, +//! Alignment::new::<SZ_4M>(), +//! GpuBuddyAllocFlags::default(), +//! ), +//! GFP_KERNEL, +//! )?; +//! +//! let _hole2 = KBox::pin_init( +//! small.alloc_blocks( +//! GpuBuddyAllocMode::Range(SZ_8M as u64..(SZ_8M + SZ_4M) as u64), +//! SZ_4M as u64, +//! Alignment::new::<SZ_4M>(), +//! GpuBuddyAllocFlags::default(), +//! ), +//! GFP_KERNEL, +//! )?; +//! +//! // 8MB contiguous should fail, only two non-contiguous 4MB holes exist. +//! let result = KBox::pin_init( +//! small.alloc_blocks( +//! GpuBuddyAllocMode::Simple, +//! SZ_8M as u64, +//! Alignment::new::<SZ_4M>(), +//! GpuBuddyAllocFlag::Contiguous, +//! ), +//! GFP_KERNEL, +//! ); +//! assert!(result.is_err()); +//! # Ok::<(), Error>(()) +//! ``` + +use core::ops::Range; + +use crate::{ + bindings, + clist_create, + error::to_result, + interop::list::CListHead, + new_mutex, + prelude::*, + ptr::Alignment, + sync::{ + lock::mutex::MutexGuard, + Arc, + Mutex, // + }, + types::Opaque, // +}; + +/// Allocation mode for the GPU buddy allocator. +/// +/// The mode determines the primary allocation strategy. Modes are mutually +/// exclusive: an allocation is either simple, range-constrained, or top-down. +/// +/// Orthogonal modifier flags (e.g., contiguous, clear) are specified separately +/// via [`GpuBuddyAllocFlags`]. +#[derive(Clone, Debug, PartialEq, Eq)] +pub enum GpuBuddyAllocMode { + /// Simple allocation without constraints. + Simple, + /// Range-based allocation within the given address range. + Range(Range<u64>), + /// Allocate from top of address space downward. + TopDown, +} + +impl GpuBuddyAllocMode { + // Returns the C flags corresponding to the allocation mode. + fn as_flags(&self) -> usize { + match self { + Self::Simple => 0, + Self::Range(_) => bindings::GPU_BUDDY_RANGE_ALLOCATION, + Self::TopDown => bindings::GPU_BUDDY_TOPDOWN_ALLOCATION, + } + } + + // Extracts the range start/end, defaulting to `(0, 0)` for non-range modes. + fn range(&self) -> (u64, u64) { + match self { + Self::Range(range) => (range.start, range.end), + _ => (0, 0), + } + } +} + +crate::impl_flags!( + /// Modifier flags for GPU buddy allocation. + /// + /// These flags can be combined with any [`GpuBuddyAllocMode`] to control + /// additional allocation behavior. + #[derive(Clone, Copy, Default, PartialEq, Eq)] + pub struct GpuBuddyAllocFlags(usize); + + /// Individual modifier flag for GPU buddy allocation. + #[derive(Clone, Copy, PartialEq, Eq)] + pub enum GpuBuddyAllocFlag { + /// Allocate physically contiguous blocks. + Contiguous = bindings::GPU_BUDDY_CONTIGUOUS_ALLOCATION, + + /// Request allocation from cleared (zeroed) memory. + Clear = bindings::GPU_BUDDY_CLEAR_ALLOCATION, + + /// Disable trimming of partially used blocks. + TrimDisable = bindings::GPU_BUDDY_TRIM_DISABLE, + } +); + +/// Parameters for creating a GPU buddy allocator. +pub struct GpuBuddyParams { + /// Base offset (in bytes) where the managed memory region starts. + /// Allocations will be offset by this value. + pub base_offset: u64, + /// Total size (in bytes) of the address space managed by the allocator. + pub size: u64, + /// Minimum allocation unit / chunk size, must be >= 4KB. + pub chunk_size: Alignment, +} + +/// Inner structure holding the actual buddy allocator. +/// +/// # Synchronization +/// +/// The C `gpu_buddy` API requires synchronization (see `include/linux/gpu_buddy.h`). +/// Internal locking ensures all allocator and free operations are properly +/// synchronized, preventing races between concurrent allocations and the +/// freeing that occurs when [`AllocatedBlocks`] is dropped. +/// +/// # Invariants +/// +/// The inner [`Opaque`] contains an initialized buddy allocator. +#[pin_data(PinnedDrop)] +struct GpuBuddyInner { + #[pin] + inner: Opaque<bindings::gpu_buddy>, + + // TODO: Replace `Mutex<()>` with `Mutex<Opaque<..>>` once `Mutex::new()` + // accepts `impl PinInit<T>`. + #[pin] + lock: Mutex<()>, + /// Cached creation parameters (do not change after init). + params: GpuBuddyParams, +} + +impl GpuBuddyInner { + /// Create a pin-initializer for the buddy allocator. + fn new(params: GpuBuddyParams) -> impl PinInit<Self, Error> { + let size = params.size; + let chunk_size = params.chunk_size; + + // INVARIANT: `gpu_buddy_init` returns 0 on success, at which point the + // `gpu_buddy` structure is initialized and ready for use with all + // `gpu_buddy_*` APIs. `try_pin_init!` only completes if all fields succeed, + // so the invariant holds when construction finishes. + try_pin_init!(Self { + inner <- Opaque::try_ffi_init(|ptr| { + // SAFETY: `ptr` points to valid uninitialized memory from the pin-init + // infrastructure. `gpu_buddy_init` will initialize the structure. + to_result(unsafe { bindings::gpu_buddy_init(ptr, size, chunk_size.as_usize() as u64) }) + }), + lock <- new_mutex!(()), + params, + }) + } + + /// Lock the mutex and return a guard for accessing the allocator. + fn lock(&self) -> GpuBuddyGuard<'_> { + GpuBuddyGuard { + inner: self, + _guard: self.lock.lock(), + } + } +} + +#[pinned_drop] +impl PinnedDrop for GpuBuddyInner { + fn drop(self: Pin<&mut Self>) { + let guard = self.lock(); + + // SAFETY: Per the type invariant, `inner` contains an initialized + // allocator. `guard` provides exclusive access. + unsafe { + bindings::gpu_buddy_fini(guard.as_raw()); + } + } +} + +// SAFETY: `GpuBuddyInner` can be sent between threads. +unsafe impl Send for GpuBuddyInner {} + +// SAFETY: `GpuBuddyInner` is `Sync` because `GpuBuddyInner::lock` +// serializes all access to the C allocator, preventing data races. +unsafe impl Sync for GpuBuddyInner {} + +// Guard that proves the lock is held, enabling access to the allocator. +// The `_guard` holds the lock for the duration of this guard's lifetime. +struct GpuBuddyGuard<'a> { + inner: &'a GpuBuddyInner, + _guard: MutexGuard<'a, ()>, +} + +impl GpuBuddyGuard<'_> { + /// Get a raw pointer to the underlying C `gpu_buddy` structure. + fn as_raw(&self) -> *mut bindings::gpu_buddy { + self.inner.inner.get() + } +} + +/// GPU buddy allocator instance. +/// +/// This structure wraps the C `gpu_buddy` allocator using reference counting. +/// The allocator is automatically cleaned up when all references are dropped. +/// +/// Refer to the module-level documentation for usage examples. +pub struct GpuBuddy(Arc<GpuBuddyInner>); + +impl GpuBuddy { + /// Create a new buddy allocator. + /// + /// Creates a buddy allocator that manages a contiguous address space of the given + /// size, with the specified minimum allocation unit (chunk_size must be at least 4KB). + pub fn new(params: GpuBuddyParams) -> Result<Self> { + Arc::pin_init(GpuBuddyInner::new(params), GFP_KERNEL).map(Self) + } + + /// Get the base offset for allocations. + pub fn base_offset(&self) -> u64 { + self.0.params.base_offset + } + + /// Get the chunk size (minimum allocation unit). + pub fn chunk_size(&self) -> Alignment { + self.0.params.chunk_size + } + + /// Get the total managed size. + pub fn size(&self) -> u64 { + self.0.params.size + } + + /// Get the available (free) memory in bytes. + pub fn avail(&self) -> u64 { + let guard = self.0.lock(); + + // SAFETY: Per the type invariant, `inner` contains an initialized allocator. + // `guard` provides exclusive access. + unsafe { (*guard.as_raw()).avail } + } + + /// Allocate blocks from the buddy allocator. + /// + /// Returns a pin-initializer for [`AllocatedBlocks`]. + pub fn alloc_blocks( + &self, + mode: GpuBuddyAllocMode, + size: u64, + min_block_size: Alignment, + flags: impl Into<GpuBuddyAllocFlags>, + ) -> impl PinInit<AllocatedBlocks, Error> { + let buddy_arc = Arc::clone(&self.0); + let (start, end) = mode.range(); + let mode_flags = mode.as_flags(); + let modifier_flags = flags.into(); + + // Create pin-initializer that initializes list and allocates blocks. + try_pin_init!(AllocatedBlocks { + buddy: buddy_arc, + list <- CListHead::new(), + _: { + // Reject zero-sized or inverted ranges. + if let GpuBuddyAllocMode::Range(range) = &mode { + if range.is_empty() { + Err::<(), Error>(EINVAL)?; + } + } + + // Lock while allocating to serialize with concurrent frees. + let guard = buddy.lock(); + + // SAFETY: Per the type invariant, `inner` contains an initialized + // allocator. `guard` provides exclusive access. + to_result(unsafe { + bindings::gpu_buddy_alloc_blocks( + guard.as_raw(), + start, + end, + size, + min_block_size.as_usize() as u64, + list.as_raw(), + mode_flags | usize::from(modifier_flags), + ) + })? + } + }) + } +} + +/// Allocated blocks from the buddy allocator with automatic cleanup. +/// +/// This structure owns a list of allocated blocks and ensures they are +/// automatically freed when dropped. Use `iter()` to iterate over all +/// allocated blocks. +/// +/// # Invariants +/// +/// - `list` is an initialized, valid list head containing allocated blocks. +#[pin_data(PinnedDrop)] +pub struct AllocatedBlocks { + #[pin] + list: CListHead, + buddy: Arc<GpuBuddyInner>, +} + +impl AllocatedBlocks { + /// Check if the block list is empty. + pub fn is_empty(&self) -> bool { + // An empty list head points to itself. + !self.list.is_linked() + } + + /// Iterate over allocated blocks. + /// + /// Returns an iterator yielding [`AllocatedBlock`] values. Each [`AllocatedBlock`] + /// borrows `self` and is only valid for the duration of that borrow. + pub fn iter(&self) -> impl Iterator<Item = AllocatedBlock<'_>> + '_ { + let head = self.list.as_raw(); + // SAFETY: Per the type invariant, `list` is an initialized sentinel `list_head` + // and is not concurrently modified (we hold a `&self` borrow). The list contains + // `gpu_buddy_block` items linked via `__bindgen_anon_1.link`. `Block` is + // `#[repr(transparent)]` over `gpu_buddy_block`. + let clist = unsafe { + clist_create!( + head, + Block, + bindings::gpu_buddy_block, + __bindgen_anon_1.link + ) + }; + + clist + .iter() + .map(|this| AllocatedBlock { this, blocks: self }) + } +} + +#[pinned_drop] +impl PinnedDrop for AllocatedBlocks { + fn drop(self: Pin<&mut Self>) { + let guard = self.buddy.lock(); + + // SAFETY: + // - list is valid per the type's invariants. + // - guard provides exclusive access to the allocator. + unsafe { + bindings::gpu_buddy_free_list(guard.as_raw(), self.list.as_raw(), 0); + } + } +} + +/// A GPU buddy block. +/// +/// Transparent wrapper over C `gpu_buddy_block` structure. This type is returned +/// as references during iteration over [`AllocatedBlocks`]. +/// +/// # Invariants +/// +/// The inner [`Opaque`] contains a valid, allocated `gpu_buddy_block`. +#[repr(transparent)] +struct Block(Opaque<bindings::gpu_buddy_block>); + +impl Block { + /// Get a raw pointer to the underlying C block. + fn as_raw(&self) -> *mut bindings::gpu_buddy_block { + self.0.get() + } + + /// Get the block's raw offset in the buddy address space (without base offset). + fn offset(&self) -> u64 { + // SAFETY: `self.as_raw()` is valid per the type's invariants. + unsafe { bindings::gpu_buddy_block_offset(self.as_raw()) } + } + + /// Get the block order. + fn order(&self) -> u32 { + // SAFETY: `self.as_raw()` is valid per the type's invariants. + unsafe { bindings::gpu_buddy_block_order(self.as_raw()) } + } +} + +// SAFETY: `Block` is a wrapper around `gpu_buddy_block` which can be +// sent across threads safely. +unsafe impl Send for Block {} + +// SAFETY: `Block` is only accessed through shared references after +// allocation, and thus safe to access concurrently across threads. +unsafe impl Sync for Block {} + +/// A buddy block paired with its owning [`AllocatedBlocks`] context. +/// +/// Unlike a raw block, which only knows its offset within the buddy address +/// space, an [`AllocatedBlock`] also has access to the allocator's `base_offset` +/// and `chunk_size`, enabling it to compute absolute offsets and byte sizes. +/// +/// Returned by [`AllocatedBlocks::iter()`]. +pub struct AllocatedBlock<'a> { + this: &'a Block, + blocks: &'a AllocatedBlocks, +} + +impl AllocatedBlock<'_> { + /// Get the block's offset in the address space. + /// + /// Returns the absolute offset including the allocator's base offset. + /// This is the actual address to use for accessing the allocated memory. + pub fn offset(&self) -> u64 { + self.blocks.buddy.params.base_offset + self.this.offset() + } + + /// Get the block order (size = chunk_size << order). + pub fn order(&self) -> u32 { + self.this.order() + } + + /// Get the block's size in bytes. + pub fn size(&self) -> u64 { + (self.blocks.buddy.params.chunk_size.as_usize() as u64) << self.this.order() + } +} diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs index bdcf632050ee..2652933e585f 100644 --- a/rust/kernel/lib.rs +++ b/rust/kernel/lib.rs @@ -102,6 +102,8 @@ pub mod firmware; pub mod fmt; pub mod fs; +#[cfg(CONFIG_GPU_BUDDY = "y")] +pub mod gpu; #[cfg(CONFIG_I2C = "y")] pub mod i2c; pub mod id_pool; -- 2.34.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v14 1/2] rust: gpu: Add GPU buddy allocator bindings 2026-03-20 4:57 ` [PATCH v14 1/2] rust: gpu: Add " Joel Fernandes @ 2026-03-20 12:16 ` Alexandre Courbot 2026-03-20 13:04 ` Gary Guo 1 sibling, 0 replies; 13+ messages in thread From: Alexandre Courbot @ 2026-03-20 12:16 UTC (permalink / raw) To: Joel Fernandes Cc: linux-kernel, Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi, Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe, linux-fbdev On Fri Mar 20, 2026 at 1:57 PM JST, Joel Fernandes wrote: > Add safe Rust abstractions over the Linux kernel's GPU buddy > allocator for physical memory management. The GPU buddy allocator > implements a binary buddy system useful for GPU physical memory > allocation. nova-core will use it for physical memory allocation. > > Cc: Nikola Djukic <ndjukic@nvidia.com> > Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v14 1/2] rust: gpu: Add GPU buddy allocator bindings 2026-03-20 4:57 ` [PATCH v14 1/2] rust: gpu: Add " Joel Fernandes 2026-03-20 12:16 ` Alexandre Courbot @ 2026-03-20 13:04 ` Gary Guo 2026-03-20 19:50 ` Joel Fernandes 1 sibling, 1 reply; 13+ messages in thread From: Gary Guo @ 2026-03-20 13:04 UTC (permalink / raw) To: Joel Fernandes, linux-kernel Cc: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Alexandre Courbot, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi, Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe, linux-fbdev On Fri Mar 20, 2026 at 4:57 AM GMT, Joel Fernandes wrote: > Add safe Rust abstractions over the Linux kernel's GPU buddy > allocator for physical memory management. The GPU buddy allocator > implements a binary buddy system useful for GPU physical memory > allocation. nova-core will use it for physical memory allocation. > > Cc: Nikola Djukic <ndjukic@nvidia.com> > Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> > --- > MAINTAINERS | 6 + > rust/bindings/bindings_helper.h | 11 + > rust/helpers/gpu.c | 23 ++ > rust/helpers/helpers.c | 1 + > rust/kernel/gpu.rs | 6 + > rust/kernel/gpu/buddy.rs | 613 ++++++++++++++++++++++++++++++++ > rust/kernel/lib.rs | 2 + > 7 files changed, 662 insertions(+) > create mode 100644 rust/helpers/gpu.c > create mode 100644 rust/kernel/gpu.rs > create mode 100644 rust/kernel/gpu/buddy.rs > > diff --git a/MAINTAINERS b/MAINTAINERS > index e847099efcc2..cd9505d3be60 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -8531,7 +8531,10 @@ T: git https://gitlab.freedesktop.org/drm/rust/kernel.git > F: drivers/gpu/drm/nova/ > F: drivers/gpu/drm/tyr/ > F: drivers/gpu/nova-core/ > +F: rust/helpers/gpu.c > F: rust/kernel/drm/ > +F: rust/kernel/gpu.rs > +F: rust/kernel/gpu/ > > DRM DRIVERS FOR ALLWINNER A10 > M: Chen-Yu Tsai <wens@kernel.org> > @@ -8952,6 +8955,9 @@ F: drivers/gpu/drm/drm_buddy.c > F: drivers/gpu/tests/gpu_buddy_test.c > F: include/drm/drm_buddy.h > F: include/linux/gpu_buddy.h > +F: rust/helpers/gpu.c > +F: rust/kernel/gpu.rs > +F: rust/kernel/gpu/ > > DRM AUTOMATED TESTING > M: Helen Koike <helen.fornazier@gmail.com> > diff --git a/rust/bindings/bindings_helper.h b/rust/bindings/bindings_helper.h > index 083cc44aa952..dbb765a9fdbd 100644 > --- a/rust/bindings/bindings_helper.h > +++ b/rust/bindings/bindings_helper.h > @@ -29,6 +29,7 @@ > #include <linux/hrtimer_types.h> > > #include <linux/acpi.h> > +#include <linux/gpu_buddy.h> > #include <drm/drm_device.h> > #include <drm/drm_drv.h> > #include <drm/drm_file.h> > @@ -146,6 +147,16 @@ const vm_flags_t RUST_CONST_HELPER_VM_MIXEDMAP = VM_MIXEDMAP; > const vm_flags_t RUST_CONST_HELPER_VM_HUGEPAGE = VM_HUGEPAGE; > const vm_flags_t RUST_CONST_HELPER_VM_NOHUGEPAGE = VM_NOHUGEPAGE; > > +#if IS_ENABLED(CONFIG_GPU_BUDDY) > +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_RANGE_ALLOCATION = GPU_BUDDY_RANGE_ALLOCATION; > +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_TOPDOWN_ALLOCATION = GPU_BUDDY_TOPDOWN_ALLOCATION; > +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CONTIGUOUS_ALLOCATION = > + GPU_BUDDY_CONTIGUOUS_ALLOCATION; > +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CLEAR_ALLOCATION = GPU_BUDDY_CLEAR_ALLOCATION; > +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CLEARED = GPU_BUDDY_CLEARED; > +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_TRIM_DISABLE = GPU_BUDDY_TRIM_DISABLE; > +#endif > + > #if IS_ENABLED(CONFIG_ANDROID_BINDER_IPC_RUST) > #include "../../drivers/android/binder/rust_binder.h" > #include "../../drivers/android/binder/rust_binder_events.h" > diff --git a/rust/helpers/gpu.c b/rust/helpers/gpu.c > new file mode 100644 > index 000000000000..38b1a4e6bef8 > --- /dev/null > +++ b/rust/helpers/gpu.c > @@ -0,0 +1,23 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +#include <linux/gpu_buddy.h> > + > +#ifdef CONFIG_GPU_BUDDY > + > +__rust_helper u64 rust_helper_gpu_buddy_block_offset(const struct gpu_buddy_block *block) > +{ > + return gpu_buddy_block_offset(block); > +} > + > +__rust_helper unsigned int rust_helper_gpu_buddy_block_order(struct gpu_buddy_block *block) > +{ > + return gpu_buddy_block_order(block); > +} > + > +__rust_helper u64 rust_helper_gpu_buddy_block_size(struct gpu_buddy *mm, > + struct gpu_buddy_block *block) > +{ > + return gpu_buddy_block_size(mm, block); > +} From Sashiko: https://sashiko.dev/#/patchset/20260320045711.43494-1-joelagnelf%40nvidia.com Does the Rust wrapper use this helper? It looks like AllocatedBlock::size() manually duplicates the bitwise logic (chunk_size << order) rather than calling this helper, which could create a divergence risk if the underlying C allocator implementation changes. Many other review comments there seem to be false positive, but it might worth confirming. Best, Gary > + > +#endif /* CONFIG_GPU_BUDDY */ > diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c > index 724fcb8240ac..a53929ce52a3 100644 > --- a/rust/helpers/helpers.c > +++ b/rust/helpers/helpers.c > @@ -32,6 +32,7 @@ > #include "err.c" > #include "irq.c" > #include "fs.c" > +#include "gpu.c" > #include "io.c" > #include "jump_label.c" > #include "kunit.c" > diff --git a/rust/kernel/gpu.rs b/rust/kernel/gpu.rs > new file mode 100644 > index 000000000000..1dc5d0c8c09d > --- /dev/null > +++ b/rust/kernel/gpu.rs > @@ -0,0 +1,6 @@ > +// SPDX-License-Identifier: GPL-2.0 > + > +//! GPU subsystem abstractions. > + > +#[cfg(CONFIG_GPU_BUDDY = "y")] > +pub mod buddy; ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v14 1/2] rust: gpu: Add GPU buddy allocator bindings 2026-03-20 13:04 ` Gary Guo @ 2026-03-20 19:50 ` Joel Fernandes 0 siblings, 0 replies; 13+ messages in thread From: Joel Fernandes @ 2026-03-20 19:50 UTC (permalink / raw) To: Gary Guo, linux-kernel Cc: Miguel Ojeda, Boqun Feng, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Alexandre Courbot, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi, Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe, linux-fbdev On 3/20/2026 9:04 AM, Gary Guo wrote: > On Fri Mar 20, 2026 at 4:57 AM GMT, Joel Fernandes wrote: >> Add safe Rust abstractions over the Linux kernel's GPU buddy >> allocator for physical memory management. The GPU buddy allocator >> implements a binary buddy system useful for GPU physical memory >> allocation. nova-core will use it for physical memory allocation. >> >> Cc: Nikola Djukic <ndjukic@nvidia.com> >> Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> >> --- >> MAINTAINERS | 6 + >> rust/bindings/bindings_helper.h | 11 + >> rust/helpers/gpu.c | 23 ++ >> rust/helpers/helpers.c | 1 + >> rust/kernel/gpu.rs | 6 + >> rust/kernel/gpu/buddy.rs | 613 ++++++++++++++++++++++++++++++++ >> rust/kernel/lib.rs | 2 + >> 7 files changed, 662 insertions(+) >> create mode 100644 rust/helpers/gpu.c >> create mode 100644 rust/kernel/gpu.rs >> create mode 100644 rust/kernel/gpu/buddy.rs >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index e847099efcc2..cd9505d3be60 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -8531,7 +8531,10 @@ T: git https://gitlab.freedesktop.org/drm/rust/kernel.git >> F: drivers/gpu/drm/nova/ >> F: drivers/gpu/drm/tyr/ >> F: drivers/gpu/nova-core/ >> +F: rust/helpers/gpu.c >> F: rust/kernel/drm/ >> +F: rust/kernel/gpu.rs >> +F: rust/kernel/gpu/ >> >> DRM DRIVERS FOR ALLWINNER A10 >> M: Chen-Yu Tsai <wens@kernel.org> >> @@ -8952,6 +8955,9 @@ F: drivers/gpu/drm/drm_buddy.c >> F: drivers/gpu/tests/gpu_buddy_test.c >> F: include/drm/drm_buddy.h >> F: include/linux/gpu_buddy.h >> +F: rust/helpers/gpu.c >> +F: rust/kernel/gpu.rs >> +F: rust/kernel/gpu/ >> >> DRM AUTOMATED TESTING >> M: Helen Koike <helen.fornazier@gmail.com> >> diff --git a/rust/bindings/bindings_helper.h b/rust/bindings/bindings_helper.h >> index 083cc44aa952..dbb765a9fdbd 100644 >> --- a/rust/bindings/bindings_helper.h >> +++ b/rust/bindings/bindings_helper.h >> @@ -29,6 +29,7 @@ >> #include <linux/hrtimer_types.h> >> >> #include <linux/acpi.h> >> +#include <linux/gpu_buddy.h> >> #include <drm/drm_device.h> >> #include <drm/drm_drv.h> >> #include <drm/drm_file.h> >> @@ -146,6 +147,16 @@ const vm_flags_t RUST_CONST_HELPER_VM_MIXEDMAP = VM_MIXEDMAP; >> const vm_flags_t RUST_CONST_HELPER_VM_HUGEPAGE = VM_HUGEPAGE; >> const vm_flags_t RUST_CONST_HELPER_VM_NOHUGEPAGE = VM_NOHUGEPAGE; >> >> +#if IS_ENABLED(CONFIG_GPU_BUDDY) >> +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_RANGE_ALLOCATION = GPU_BUDDY_RANGE_ALLOCATION; >> +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_TOPDOWN_ALLOCATION = GPU_BUDDY_TOPDOWN_ALLOCATION; >> +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CONTIGUOUS_ALLOCATION = >> + GPU_BUDDY_CONTIGUOUS_ALLOCATION; >> +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CLEAR_ALLOCATION = GPU_BUDDY_CLEAR_ALLOCATION; >> +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_CLEARED = GPU_BUDDY_CLEARED; >> +const unsigned long RUST_CONST_HELPER_GPU_BUDDY_TRIM_DISABLE = GPU_BUDDY_TRIM_DISABLE; >> +#endif >> + >> #if IS_ENABLED(CONFIG_ANDROID_BINDER_IPC_RUST) >> #include "../../drivers/android/binder/rust_binder.h" >> #include "../../drivers/android/binder/rust_binder_events.h" >> diff --git a/rust/helpers/gpu.c b/rust/helpers/gpu.c >> new file mode 100644 >> index 000000000000..38b1a4e6bef8 >> --- /dev/null >> +++ b/rust/helpers/gpu.c >> @@ -0,0 +1,23 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> + >> +#include <linux/gpu_buddy.h> >> + >> +#ifdef CONFIG_GPU_BUDDY >> + >> +__rust_helper u64 rust_helper_gpu_buddy_block_offset(const struct gpu_buddy_block *block) >> +{ >> + return gpu_buddy_block_offset(block); >> +} >> + >> +__rust_helper unsigned int rust_helper_gpu_buddy_block_order(struct gpu_buddy_block *block) >> +{ >> + return gpu_buddy_block_order(block); >> +} >> + >> +__rust_helper u64 rust_helper_gpu_buddy_block_size(struct gpu_buddy *mm, >> + struct gpu_buddy_block *block) >> +{ >> + return gpu_buddy_block_size(mm, block); >> +} > > From Sashiko: > https://sashiko.dev/#/patchset/20260320045711.43494-1-joelagnelf%40nvidia.com > > Does the Rust wrapper use this helper? It looks like AllocatedBlock::size() > manually duplicates the bitwise logic (chunk_size << order) rather than > calling this helper, which could create a divergence risk if the underlying C > allocator implementation changes. > > Many other review comments there seem to be false positive, but it might worth > confirming. If Danilo is applying the patch, can we please remove the helper on apply? I think in this case we do not need to call the helper. I don't think there is a divergence risk here. thanks, -- Joel Fernandes ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v14 2/2] MAINTAINERS: gpu: buddy: Update reviewer 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes 2026-03-20 4:57 ` [PATCH v14 1/2] rust: gpu: Add " Joel Fernandes @ 2026-03-20 4:57 ` Joel Fernandes 2026-03-20 12:16 ` Alexandre Courbot 2026-03-20 5:02 ` ✗ CI.checkpatch: warning for Rust GPU buddy allocator bindings (rev3) Patchwork ` (4 subsequent siblings) 6 siblings, 1 reply; 13+ messages in thread From: Joel Fernandes @ 2026-03-20 4:57 UTC (permalink / raw) To: linux-kernel Cc: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Alexandre Courbot, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi, Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe, linux-fbdev, Joel Fernandes Christian Koenig mentioned he'd like to step down from the reviewer role for the GPU buddy allocator. Joel Fernandes is stepping in as reviewer with agreement from Matthew Auld and Arun Pravin. Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index cd9505d3be60..3353cbf98be1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8946,7 +8946,7 @@ F: include/drm/ttm/ GPU BUDDY ALLOCATOR M: Matthew Auld <matthew.auld@intel.com> M: Arun Pravin <arunpravin.paneerselvam@amd.com> -R: Christian Koenig <christian.koenig@amd.com> +R: Joel Fernandes <joelagnelf@nvidia.com> L: dri-devel@lists.freedesktop.org S: Maintained T: git https://gitlab.freedesktop.org/drm/misc/kernel.git -- 2.34.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v14 2/2] MAINTAINERS: gpu: buddy: Update reviewer 2026-03-20 4:57 ` [PATCH v14 2/2] MAINTAINERS: gpu: buddy: Update reviewer Joel Fernandes @ 2026-03-20 12:16 ` Alexandre Courbot 2026-03-21 0:06 ` Joel Fernandes 0 siblings, 1 reply; 13+ messages in thread From: Alexandre Courbot @ 2026-03-20 12:16 UTC (permalink / raw) To: Joel Fernandes Cc: linux-kernel, Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi, Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe, linux-fbdev On Fri Mar 20, 2026 at 1:57 PM JST, Joel Fernandes wrote: > Christian Koenig mentioned he'd like to step down from the reviewer > role for the GPU buddy allocator. Joel Fernandes is stepping in as > reviewer with agreement from Matthew Auld and Arun Pravin. > > Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> This is missing the Acked-bys you collected on v13. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v14 2/2] MAINTAINERS: gpu: buddy: Update reviewer 2026-03-20 12:16 ` Alexandre Courbot @ 2026-03-21 0:06 ` Joel Fernandes 0 siblings, 0 replies; 13+ messages in thread From: Joel Fernandes @ 2026-03-21 0:06 UTC (permalink / raw) To: Alexandre Courbot Cc: linux-kernel@vger.kernel.org, Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel@lists.freedesktop.org, rust-for-linux@vger.kernel.org, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Vivi Rodrigo, Tvrtko Ursulin, Rui Huang, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, Alexey Ivanov, Eliot Courtney, joel@joelfernandes.org, linux-doc@vger.kernel.org, amd-gfx@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, linux-fbdev@vger.kernel.org > On Mar 20, 2026, at 8:16 AM, Alexandre Courbot <acourbot@nvidia.com> wrote: > > On Fri Mar 20, 2026 at 1:57 PM JST, Joel Fernandes wrote: >> Christian Koenig mentioned he'd like to step down from the reviewer >> role for the GPU buddy allocator. Joel Fernandes is stepping in as >> reviewer with agreement from Matthew Auld and Arun Pravin. >> >> Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> > > This is missing the Acked-bys you collected on v13. Thank you, would Danilo be willing to add it only apply so I do not need to resend? Acks are from Mathew, Arun and Christian. ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✗ CI.checkpatch: warning for Rust GPU buddy allocator bindings (rev3) 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes 2026-03-20 4:57 ` [PATCH v14 1/2] rust: gpu: Add " Joel Fernandes 2026-03-20 4:57 ` [PATCH v14 2/2] MAINTAINERS: gpu: buddy: Update reviewer Joel Fernandes @ 2026-03-20 5:02 ` Patchwork 2026-03-20 5:04 ` ✓ CI.KUnit: success " Patchwork ` (3 subsequent siblings) 6 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2026-03-20 5:02 UTC (permalink / raw) To: Joel Fernandes; +Cc: intel-xe == Series Details == Series: Rust GPU buddy allocator bindings (rev3) URL : https://patchwork.freedesktop.org/series/162098/ 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 1f57ba1afceae32108bd24770069f764d940a0e4 + cd /kernel + git config --global --add safe.directory /kernel + git log -n1 commit c89528b86ff747960b4acdf705d5129b049c49d8 Author: Joel Fernandes <joelagnelf@nvidia.com> Date: Fri Mar 20 00:57:11 2026 -0400 MAINTAINERS: gpu: buddy: Update reviewer Christian Koenig mentioned he'd like to step down from the reviewer role for the GPU buddy allocator. Joel Fernandes is stepping in as reviewer with agreement from Matthew Auld and Arun Pravin. Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> + /mt/dim checkpatch 4ae9f18564e78a5447be68aa1e9232a4f2c37b5a drm-intel 3114ebc098a8 rust: gpu: Add GPU buddy allocator bindings -:69: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #69: new file mode 100644 -:470: WARNING:LONG_LINE: line length of 103 exceeds 100 columns #470: FILE: rust/kernel/gpu/buddy.rs:344: + to_result(unsafe { bindings::gpu_buddy_init(ptr, size, chunk_size.as_usize() as u64) }) total: 0 errors, 2 warnings, 0 checks, 699 lines checked c89528b86ff7 MAINTAINERS: gpu: buddy: Update reviewer ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ CI.KUnit: success for Rust GPU buddy allocator bindings (rev3) 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes ` (2 preceding siblings ...) 2026-03-20 5:02 ` ✗ CI.checkpatch: warning for Rust GPU buddy allocator bindings (rev3) Patchwork @ 2026-03-20 5:04 ` Patchwork 2026-03-20 5:38 ` ✓ Xe.CI.BAT: " Patchwork ` (2 subsequent siblings) 6 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2026-03-20 5:04 UTC (permalink / raw) To: Joel Fernandes; +Cc: intel-xe == Series Details == Series: Rust GPU buddy allocator bindings (rev3) URL : https://patchwork.freedesktop.org/series/162098/ State : success == Summary == + trap cleanup EXIT + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [05:02:45] Configuring KUnit Kernel ... Generating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:02:49] 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 [05:03:19] Starting KUnit Kernel (1/1)... [05:03:19] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:03:19] ================== guc_buf (11 subtests) =================== [05:03:19] [PASSED] test_smallest [05:03:19] [PASSED] test_largest [05:03:19] [PASSED] test_granular [05:03:19] [PASSED] test_unique [05:03:19] [PASSED] test_overlap [05:03:19] [PASSED] test_reusable [05:03:19] [PASSED] test_too_big [05:03:19] [PASSED] test_flush [05:03:19] [PASSED] test_lookup [05:03:19] [PASSED] test_data [05:03:19] [PASSED] test_class [05:03:19] ===================== [PASSED] guc_buf ===================== [05:03:19] =================== guc_dbm (7 subtests) =================== [05:03:19] [PASSED] test_empty [05:03:19] [PASSED] test_default [05:03:19] ======================== test_size ======================== [05:03:19] [PASSED] 4 [05:03:19] [PASSED] 8 [05:03:19] [PASSED] 32 [05:03:19] [PASSED] 256 [05:03:19] ==================== [PASSED] test_size ==================== [05:03:19] ======================= test_reuse ======================== [05:03:19] [PASSED] 4 [05:03:19] [PASSED] 8 [05:03:19] [PASSED] 32 [05:03:19] [PASSED] 256 [05:03:19] =================== [PASSED] test_reuse ==================== [05:03:19] =================== test_range_overlap ==================== [05:03:19] [PASSED] 4 [05:03:19] [PASSED] 8 [05:03:19] [PASSED] 32 [05:03:19] [PASSED] 256 [05:03:19] =============== [PASSED] test_range_overlap ================ [05:03:19] =================== test_range_compact ==================== [05:03:19] [PASSED] 4 [05:03:19] [PASSED] 8 [05:03:19] [PASSED] 32 [05:03:19] [PASSED] 256 [05:03:19] =============== [PASSED] test_range_compact ================ [05:03:19] ==================== test_range_spare ===================== [05:03:19] [PASSED] 4 [05:03:19] [PASSED] 8 [05:03:19] [PASSED] 32 [05:03:19] [PASSED] 256 [05:03:19] ================ [PASSED] test_range_spare ================= [05:03:19] ===================== [PASSED] guc_dbm ===================== [05:03:19] =================== guc_idm (6 subtests) =================== [05:03:19] [PASSED] bad_init [05:03:19] [PASSED] no_init [05:03:19] [PASSED] init_fini [05:03:19] [PASSED] check_used [05:03:19] [PASSED] check_quota [05:03:19] [PASSED] check_all [05:03:19] ===================== [PASSED] guc_idm ===================== [05:03:19] ================== no_relay (3 subtests) =================== [05:03:19] [PASSED] xe_drops_guc2pf_if_not_ready [05:03:19] [PASSED] xe_drops_guc2vf_if_not_ready [05:03:19] [PASSED] xe_rejects_send_if_not_ready [05:03:19] ==================== [PASSED] no_relay ===================== [05:03:19] ================== pf_relay (14 subtests) ================== [05:03:19] [PASSED] pf_rejects_guc2pf_too_short [05:03:19] [PASSED] pf_rejects_guc2pf_too_long [05:03:19] [PASSED] pf_rejects_guc2pf_no_payload [05:03:19] [PASSED] pf_fails_no_payload [05:03:19] [PASSED] pf_fails_bad_origin [05:03:19] [PASSED] pf_fails_bad_type [05:03:19] [PASSED] pf_txn_reports_error [05:03:19] [PASSED] pf_txn_sends_pf2guc [05:03:19] [PASSED] pf_sends_pf2guc [05:03:19] [SKIPPED] pf_loopback_nop [05:03:19] [SKIPPED] pf_loopback_echo [05:03:19] [SKIPPED] pf_loopback_fail [05:03:19] [SKIPPED] pf_loopback_busy [05:03:19] [SKIPPED] pf_loopback_retry [05:03:19] ==================== [PASSED] pf_relay ===================== [05:03:19] ================== vf_relay (3 subtests) =================== [05:03:20] [PASSED] vf_rejects_guc2vf_too_short [05:03:20] [PASSED] vf_rejects_guc2vf_too_long [05:03:20] [PASSED] vf_rejects_guc2vf_no_payload [05:03:20] ==================== [PASSED] vf_relay ===================== [05:03:20] ================ pf_gt_config (9 subtests) ================= [05:03:20] [PASSED] fair_contexts_1vf [05:03:20] [PASSED] fair_doorbells_1vf [05:03:20] [PASSED] fair_ggtt_1vf [05:03:20] ====================== fair_vram_1vf ====================== [05:03:20] [PASSED] 3.50 GiB [05:03:20] [PASSED] 11.5 GiB [05:03:20] [PASSED] 15.5 GiB [05:03:20] [PASSED] 31.5 GiB [05:03:20] [PASSED] 63.5 GiB [05:03:20] [PASSED] 1.91 GiB [05:03:20] ================== [PASSED] fair_vram_1vf ================== [05:03:20] ================ fair_vram_1vf_admin_only ================= [05:03:20] [PASSED] 3.50 GiB [05:03:20] [PASSED] 11.5 GiB [05:03:20] [PASSED] 15.5 GiB [05:03:20] [PASSED] 31.5 GiB [05:03:20] [PASSED] 63.5 GiB [05:03:20] [PASSED] 1.91 GiB [05:03:20] ============ [PASSED] fair_vram_1vf_admin_only ============= [05:03:20] ====================== fair_contexts ====================== [05:03:20] [PASSED] 1 VF [05:03:20] [PASSED] 2 VFs [05:03:20] [PASSED] 3 VFs [05:03:20] [PASSED] 4 VFs [05:03:20] [PASSED] 5 VFs [05:03:20] [PASSED] 6 VFs [05:03:20] [PASSED] 7 VFs [05:03:20] [PASSED] 8 VFs [05:03:20] [PASSED] 9 VFs [05:03:20] [PASSED] 10 VFs [05:03:20] [PASSED] 11 VFs [05:03:20] [PASSED] 12 VFs [05:03:20] [PASSED] 13 VFs [05:03:20] [PASSED] 14 VFs [05:03:20] [PASSED] 15 VFs [05:03:20] [PASSED] 16 VFs [05:03:20] [PASSED] 17 VFs [05:03:20] [PASSED] 18 VFs [05:03:20] [PASSED] 19 VFs [05:03:20] [PASSED] 20 VFs [05:03:20] [PASSED] 21 VFs [05:03:20] [PASSED] 22 VFs [05:03:20] [PASSED] 23 VFs [05:03:20] [PASSED] 24 VFs [05:03:20] [PASSED] 25 VFs [05:03:20] [PASSED] 26 VFs [05:03:20] [PASSED] 27 VFs [05:03:20] [PASSED] 28 VFs [05:03:20] [PASSED] 29 VFs [05:03:20] [PASSED] 30 VFs [05:03:20] [PASSED] 31 VFs [05:03:20] [PASSED] 32 VFs [05:03:20] [PASSED] 33 VFs [05:03:20] [PASSED] 34 VFs [05:03:20] [PASSED] 35 VFs [05:03:20] [PASSED] 36 VFs [05:03:20] [PASSED] 37 VFs [05:03:20] [PASSED] 38 VFs [05:03:20] [PASSED] 39 VFs [05:03:20] [PASSED] 40 VFs [05:03:20] [PASSED] 41 VFs [05:03:20] [PASSED] 42 VFs [05:03:20] [PASSED] 43 VFs [05:03:20] [PASSED] 44 VFs [05:03:20] [PASSED] 45 VFs [05:03:20] [PASSED] 46 VFs [05:03:20] [PASSED] 47 VFs [05:03:20] [PASSED] 48 VFs [05:03:20] [PASSED] 49 VFs [05:03:20] [PASSED] 50 VFs [05:03:20] [PASSED] 51 VFs [05:03:20] [PASSED] 52 VFs [05:03:20] [PASSED] 53 VFs [05:03:20] [PASSED] 54 VFs [05:03:20] [PASSED] 55 VFs [05:03:20] [PASSED] 56 VFs [05:03:20] [PASSED] 57 VFs [05:03:20] [PASSED] 58 VFs [05:03:20] [PASSED] 59 VFs [05:03:20] [PASSED] 60 VFs [05:03:20] [PASSED] 61 VFs [05:03:20] [PASSED] 62 VFs [05:03:20] [PASSED] 63 VFs [05:03:20] ================== [PASSED] fair_contexts ================== [05:03:20] ===================== fair_doorbells ====================== [05:03:20] [PASSED] 1 VF [05:03:20] [PASSED] 2 VFs [05:03:20] [PASSED] 3 VFs [05:03:20] [PASSED] 4 VFs [05:03:20] [PASSED] 5 VFs [05:03:20] [PASSED] 6 VFs [05:03:20] [PASSED] 7 VFs [05:03:20] [PASSED] 8 VFs [05:03:20] [PASSED] 9 VFs [05:03:20] [PASSED] 10 VFs [05:03:20] [PASSED] 11 VFs [05:03:20] [PASSED] 12 VFs [05:03:20] [PASSED] 13 VFs [05:03:20] [PASSED] 14 VFs [05:03:20] [PASSED] 15 VFs [05:03:20] [PASSED] 16 VFs [05:03:20] [PASSED] 17 VFs [05:03:20] [PASSED] 18 VFs [05:03:20] [PASSED] 19 VFs [05:03:20] [PASSED] 20 VFs [05:03:20] [PASSED] 21 VFs [05:03:20] [PASSED] 22 VFs [05:03:20] [PASSED] 23 VFs [05:03:20] [PASSED] 24 VFs [05:03:20] [PASSED] 25 VFs [05:03:20] [PASSED] 26 VFs [05:03:20] [PASSED] 27 VFs [05:03:20] [PASSED] 28 VFs [05:03:20] [PASSED] 29 VFs [05:03:20] [PASSED] 30 VFs [05:03:20] [PASSED] 31 VFs [05:03:20] [PASSED] 32 VFs [05:03:20] [PASSED] 33 VFs [05:03:20] [PASSED] 34 VFs [05:03:20] [PASSED] 35 VFs [05:03:20] [PASSED] 36 VFs [05:03:20] [PASSED] 37 VFs [05:03:20] [PASSED] 38 VFs [05:03:20] [PASSED] 39 VFs [05:03:20] [PASSED] 40 VFs [05:03:20] [PASSED] 41 VFs [05:03:20] [PASSED] 42 VFs [05:03:20] [PASSED] 43 VFs [05:03:20] [PASSED] 44 VFs [05:03:20] [PASSED] 45 VFs [05:03:20] [PASSED] 46 VFs [05:03:20] [PASSED] 47 VFs [05:03:20] [PASSED] 48 VFs [05:03:20] [PASSED] 49 VFs [05:03:20] [PASSED] 50 VFs [05:03:20] [PASSED] 51 VFs [05:03:20] [PASSED] 52 VFs [05:03:20] [PASSED] 53 VFs [05:03:20] [PASSED] 54 VFs [05:03:20] [PASSED] 55 VFs [05:03:20] [PASSED] 56 VFs [05:03:20] [PASSED] 57 VFs [05:03:20] [PASSED] 58 VFs [05:03:20] [PASSED] 59 VFs [05:03:20] [PASSED] 60 VFs [05:03:20] [PASSED] 61 VFs [05:03:20] [PASSED] 62 VFs [05:03:20] [PASSED] 63 VFs [05:03:20] ================= [PASSED] fair_doorbells ================== [05:03:20] ======================== fair_ggtt ======================== [05:03:20] [PASSED] 1 VF [05:03:20] [PASSED] 2 VFs [05:03:20] [PASSED] 3 VFs [05:03:20] [PASSED] 4 VFs [05:03:20] [PASSED] 5 VFs [05:03:20] [PASSED] 6 VFs [05:03:20] [PASSED] 7 VFs [05:03:20] [PASSED] 8 VFs [05:03:20] [PASSED] 9 VFs [05:03:20] [PASSED] 10 VFs [05:03:20] [PASSED] 11 VFs [05:03:20] [PASSED] 12 VFs [05:03:20] [PASSED] 13 VFs [05:03:20] [PASSED] 14 VFs [05:03:20] [PASSED] 15 VFs [05:03:20] [PASSED] 16 VFs [05:03:20] [PASSED] 17 VFs [05:03:20] [PASSED] 18 VFs [05:03:20] [PASSED] 19 VFs [05:03:20] [PASSED] 20 VFs [05:03:20] [PASSED] 21 VFs [05:03:20] [PASSED] 22 VFs [05:03:20] [PASSED] 23 VFs [05:03:20] [PASSED] 24 VFs [05:03:20] [PASSED] 25 VFs [05:03:20] [PASSED] 26 VFs [05:03:20] [PASSED] 27 VFs [05:03:20] [PASSED] 28 VFs [05:03:20] [PASSED] 29 VFs [05:03:20] [PASSED] 30 VFs [05:03:20] [PASSED] 31 VFs [05:03:20] [PASSED] 32 VFs [05:03:20] [PASSED] 33 VFs [05:03:20] [PASSED] 34 VFs [05:03:20] [PASSED] 35 VFs [05:03:20] [PASSED] 36 VFs [05:03:20] [PASSED] 37 VFs [05:03:20] [PASSED] 38 VFs [05:03:20] [PASSED] 39 VFs [05:03:20] [PASSED] 40 VFs [05:03:20] [PASSED] 41 VFs [05:03:20] [PASSED] 42 VFs [05:03:20] [PASSED] 43 VFs [05:03:20] [PASSED] 44 VFs [05:03:20] [PASSED] 45 VFs [05:03:20] [PASSED] 46 VFs [05:03:20] [PASSED] 47 VFs [05:03:20] [PASSED] 48 VFs [05:03:20] [PASSED] 49 VFs [05:03:20] [PASSED] 50 VFs [05:03:20] [PASSED] 51 VFs [05:03:20] [PASSED] 52 VFs [05:03:20] [PASSED] 53 VFs [05:03:20] [PASSED] 54 VFs [05:03:20] [PASSED] 55 VFs [05:03:20] [PASSED] 56 VFs [05:03:20] [PASSED] 57 VFs [05:03:20] [PASSED] 58 VFs [05:03:20] [PASSED] 59 VFs [05:03:20] [PASSED] 60 VFs [05:03:20] [PASSED] 61 VFs [05:03:20] [PASSED] 62 VFs [05:03:20] [PASSED] 63 VFs [05:03:20] ==================== [PASSED] fair_ggtt ==================== [05:03:20] ======================== fair_vram ======================== [05:03:20] [PASSED] 1 VF [05:03:20] [PASSED] 2 VFs [05:03:20] [PASSED] 3 VFs [05:03:20] [PASSED] 4 VFs [05:03:20] [PASSED] 5 VFs [05:03:20] [PASSED] 6 VFs [05:03:20] [PASSED] 7 VFs [05:03:20] [PASSED] 8 VFs [05:03:20] [PASSED] 9 VFs [05:03:20] [PASSED] 10 VFs [05:03:20] [PASSED] 11 VFs [05:03:20] [PASSED] 12 VFs [05:03:20] [PASSED] 13 VFs [05:03:20] [PASSED] 14 VFs [05:03:20] [PASSED] 15 VFs [05:03:20] [PASSED] 16 VFs [05:03:20] [PASSED] 17 VFs [05:03:20] [PASSED] 18 VFs [05:03:20] [PASSED] 19 VFs [05:03:20] [PASSED] 20 VFs [05:03:20] [PASSED] 21 VFs [05:03:20] [PASSED] 22 VFs [05:03:20] [PASSED] 23 VFs [05:03:20] [PASSED] 24 VFs [05:03:20] [PASSED] 25 VFs [05:03:20] [PASSED] 26 VFs [05:03:20] [PASSED] 27 VFs [05:03:20] [PASSED] 28 VFs [05:03:20] [PASSED] 29 VFs [05:03:20] [PASSED] 30 VFs [05:03:20] [PASSED] 31 VFs [05:03:20] [PASSED] 32 VFs [05:03:20] [PASSED] 33 VFs [05:03:20] [PASSED] 34 VFs [05:03:20] [PASSED] 35 VFs [05:03:20] [PASSED] 36 VFs [05:03:20] [PASSED] 37 VFs [05:03:20] [PASSED] 38 VFs [05:03:20] [PASSED] 39 VFs [05:03:20] [PASSED] 40 VFs [05:03:20] [PASSED] 41 VFs [05:03:20] [PASSED] 42 VFs [05:03:20] [PASSED] 43 VFs [05:03:20] [PASSED] 44 VFs [05:03:20] [PASSED] 45 VFs [05:03:20] [PASSED] 46 VFs [05:03:20] [PASSED] 47 VFs [05:03:20] [PASSED] 48 VFs [05:03:20] [PASSED] 49 VFs [05:03:20] [PASSED] 50 VFs [05:03:20] [PASSED] 51 VFs [05:03:20] [PASSED] 52 VFs [05:03:20] [PASSED] 53 VFs [05:03:20] [PASSED] 54 VFs [05:03:20] [PASSED] 55 VFs [05:03:20] [PASSED] 56 VFs [05:03:20] [PASSED] 57 VFs [05:03:20] [PASSED] 58 VFs [05:03:20] [PASSED] 59 VFs [05:03:20] [PASSED] 60 VFs [05:03:20] [PASSED] 61 VFs [05:03:20] [PASSED] 62 VFs [05:03:20] [PASSED] 63 VFs [05:03:20] ==================== [PASSED] fair_vram ==================== [05:03:20] ================== [PASSED] pf_gt_config =================== [05:03:20] ===================== lmtt (1 subtest) ===================== [05:03:20] ======================== test_ops ========================= [05:03:20] [PASSED] 2-level [05:03:20] [PASSED] multi-level [05:03:20] ==================== [PASSED] test_ops ===================== [05:03:20] ====================== [PASSED] lmtt ======================= [05:03:20] ================= pf_service (11 subtests) ================= [05:03:20] [PASSED] pf_negotiate_any [05:03:20] [PASSED] pf_negotiate_base_match [05:03:20] [PASSED] pf_negotiate_base_newer [05:03:20] [PASSED] pf_negotiate_base_next [05:03:20] [SKIPPED] pf_negotiate_base_older [05:03:20] [PASSED] pf_negotiate_base_prev [05:03:20] [PASSED] pf_negotiate_latest_match [05:03:20] [PASSED] pf_negotiate_latest_newer [05:03:20] [PASSED] pf_negotiate_latest_next [05:03:20] [SKIPPED] pf_negotiate_latest_older [05:03:20] [SKIPPED] pf_negotiate_latest_prev [05:03:20] =================== [PASSED] pf_service ==================== [05:03:20] ================= xe_guc_g2g (2 subtests) ================== [05:03:20] ============== xe_live_guc_g2g_kunit_default ============== [05:03:20] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ========== [05:03:20] ============== xe_live_guc_g2g_kunit_allmem =============== [05:03:20] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ========== [05:03:20] =================== [SKIPPED] xe_guc_g2g =================== [05:03:20] =================== xe_mocs (2 subtests) =================== [05:03:20] ================ xe_live_mocs_kernel_kunit ================ [05:03:20] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [05:03:20] ================ xe_live_mocs_reset_kunit ================= [05:03:20] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [05:03:20] ==================== [SKIPPED] xe_mocs ===================== [05:03:20] ================= xe_migrate (2 subtests) ================== [05:03:20] ================= xe_migrate_sanity_kunit ================= [05:03:20] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [05:03:20] ================== xe_validate_ccs_kunit ================== [05:03:20] ============= [SKIPPED] xe_validate_ccs_kunit ============== [05:03:20] =================== [SKIPPED] xe_migrate =================== [05:03:20] ================== xe_dma_buf (1 subtest) ================== [05:03:20] ==================== xe_dma_buf_kunit ===================== [05:03:20] ================ [SKIPPED] xe_dma_buf_kunit ================ [05:03:20] =================== [SKIPPED] xe_dma_buf =================== [05:03:20] ================= xe_bo_shrink (1 subtest) ================= [05:03:20] =================== xe_bo_shrink_kunit ==================== [05:03:20] =============== [SKIPPED] xe_bo_shrink_kunit =============== [05:03:20] ================== [SKIPPED] xe_bo_shrink ================== [05:03:20] ==================== xe_bo (2 subtests) ==================== [05:03:20] ================== xe_ccs_migrate_kunit =================== [05:03:20] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [05:03:20] ==================== xe_bo_evict_kunit ==================== [05:03:20] =============== [SKIPPED] xe_bo_evict_kunit ================ [05:03:20] ===================== [SKIPPED] xe_bo ====================== [05:03:20] ==================== args (13 subtests) ==================== [05:03:20] [PASSED] count_args_test [05:03:20] [PASSED] call_args_example [05:03:20] [PASSED] call_args_test [05:03:20] [PASSED] drop_first_arg_example [05:03:20] [PASSED] drop_first_arg_test [05:03:20] [PASSED] first_arg_example [05:03:20] [PASSED] first_arg_test [05:03:20] [PASSED] last_arg_example [05:03:20] [PASSED] last_arg_test [05:03:20] [PASSED] pick_arg_example [05:03:20] [PASSED] if_args_example [05:03:20] [PASSED] if_args_test [05:03:20] [PASSED] sep_comma_example [05:03:20] ====================== [PASSED] args ======================= [05:03:20] =================== xe_pci (3 subtests) ==================== [05:03:20] ==================== check_graphics_ip ==================== [05:03:20] [PASSED] 12.00 Xe_LP [05:03:20] [PASSED] 12.10 Xe_LP+ [05:03:20] [PASSED] 12.55 Xe_HPG [05:03:20] [PASSED] 12.60 Xe_HPC [05:03:20] [PASSED] 12.70 Xe_LPG [05:03:20] [PASSED] 12.71 Xe_LPG [05:03:20] [PASSED] 12.74 Xe_LPG+ [05:03:20] [PASSED] 20.01 Xe2_HPG [05:03:20] [PASSED] 20.02 Xe2_HPG [05:03:20] [PASSED] 20.04 Xe2_LPG [05:03:20] [PASSED] 30.00 Xe3_LPG [05:03:20] [PASSED] 30.01 Xe3_LPG [05:03:20] [PASSED] 30.03 Xe3_LPG [05:03:20] [PASSED] 30.04 Xe3_LPG [05:03:20] [PASSED] 30.05 Xe3_LPG [05:03:20] [PASSED] 35.10 Xe3p_LPG [05:03:20] [PASSED] 35.11 Xe3p_XPC [05:03:20] ================ [PASSED] check_graphics_ip ================ [05:03:20] ===================== check_media_ip ====================== [05:03:20] [PASSED] 12.00 Xe_M [05:03:20] [PASSED] 12.55 Xe_HPM [05:03:20] [PASSED] 13.00 Xe_LPM+ [05:03:20] [PASSED] 13.01 Xe2_HPM [05:03:20] [PASSED] 20.00 Xe2_LPM [05:03:20] [PASSED] 30.00 Xe3_LPM [05:03:20] [PASSED] 30.02 Xe3_LPM [05:03:20] [PASSED] 35.00 Xe3p_LPM [05:03:20] [PASSED] 35.03 Xe3p_HPM [05:03:20] ================= [PASSED] check_media_ip ================== [05:03:20] =================== check_platform_desc =================== [05:03:20] [PASSED] 0x9A60 (TIGERLAKE) [05:03:20] [PASSED] 0x9A68 (TIGERLAKE) [05:03:20] [PASSED] 0x9A70 (TIGERLAKE) [05:03:20] [PASSED] 0x9A40 (TIGERLAKE) [05:03:20] [PASSED] 0x9A49 (TIGERLAKE) [05:03:20] [PASSED] 0x9A59 (TIGERLAKE) [05:03:20] [PASSED] 0x9A78 (TIGERLAKE) [05:03:20] [PASSED] 0x9AC0 (TIGERLAKE) [05:03:20] [PASSED] 0x9AC9 (TIGERLAKE) [05:03:20] [PASSED] 0x9AD9 (TIGERLAKE) [05:03:20] [PASSED] 0x9AF8 (TIGERLAKE) [05:03:20] [PASSED] 0x4C80 (ROCKETLAKE) [05:03:20] [PASSED] 0x4C8A (ROCKETLAKE) [05:03:20] [PASSED] 0x4C8B (ROCKETLAKE) [05:03:20] [PASSED] 0x4C8C (ROCKETLAKE) [05:03:20] [PASSED] 0x4C90 (ROCKETLAKE) [05:03:20] [PASSED] 0x4C9A (ROCKETLAKE) [05:03:20] [PASSED] 0x4680 (ALDERLAKE_S) [05:03:20] [PASSED] 0x4682 (ALDERLAKE_S) [05:03:20] [PASSED] 0x4688 (ALDERLAKE_S) [05:03:20] [PASSED] 0x468A (ALDERLAKE_S) [05:03:20] [PASSED] 0x468B (ALDERLAKE_S) [05:03:20] [PASSED] 0x4690 (ALDERLAKE_S) [05:03:20] [PASSED] 0x4692 (ALDERLAKE_S) [05:03:20] [PASSED] 0x4693 (ALDERLAKE_S) [05:03:20] [PASSED] 0x46A0 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46A1 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46A2 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46A3 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46A6 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46A8 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46AA (ALDERLAKE_P) [05:03:20] [PASSED] 0x462A (ALDERLAKE_P) [05:03:20] [PASSED] 0x4626 (ALDERLAKE_P) [05:03:20] [PASSED] 0x4628 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46B0 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46B1 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46B2 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46B3 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46C0 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46C1 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46C2 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46C3 (ALDERLAKE_P) [05:03:20] [PASSED] 0x46D0 (ALDERLAKE_N) [05:03:20] [PASSED] 0x46D1 (ALDERLAKE_N) [05:03:20] [PASSED] 0x46D2 (ALDERLAKE_N) [05:03:20] [PASSED] 0x46D3 (ALDERLAKE_N) [05:03:20] [PASSED] 0x46D4 (ALDERLAKE_N) [05:03:20] [PASSED] 0xA721 (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7A1 (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7A9 (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7AC (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7AD (ALDERLAKE_P) [05:03:20] [PASSED] 0xA720 (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7A0 (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7A8 (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7AA (ALDERLAKE_P) [05:03:20] [PASSED] 0xA7AB (ALDERLAKE_P) [05:03:20] [PASSED] 0xA780 (ALDERLAKE_S) [05:03:20] [PASSED] 0xA781 (ALDERLAKE_S) [05:03:20] [PASSED] 0xA782 (ALDERLAKE_S) [05:03:20] [PASSED] 0xA783 (ALDERLAKE_S) [05:03:20] [PASSED] 0xA788 (ALDERLAKE_S) [05:03:20] [PASSED] 0xA789 (ALDERLAKE_S) [05:03:20] [PASSED] 0xA78A (ALDERLAKE_S) [05:03:20] [PASSED] 0xA78B (ALDERLAKE_S) [05:03:20] [PASSED] 0x4905 (DG1) [05:03:20] [PASSED] 0x4906 (DG1) [05:03:20] [PASSED] 0x4907 (DG1) [05:03:20] [PASSED] 0x4908 (DG1) [05:03:20] [PASSED] 0x4909 (DG1) [05:03:20] [PASSED] 0x56C0 (DG2) [05:03:20] [PASSED] 0x56C2 (DG2) [05:03:20] [PASSED] 0x56C1 (DG2) [05:03:20] [PASSED] 0x7D51 (METEORLAKE) [05:03:20] [PASSED] 0x7DD1 (METEORLAKE) [05:03:20] [PASSED] 0x7D41 (METEORLAKE) [05:03:20] [PASSED] 0x7D67 (METEORLAKE) [05:03:20] [PASSED] 0xB640 (METEORLAKE) [05:03:20] [PASSED] 0x56A0 (DG2) [05:03:20] [PASSED] 0x56A1 (DG2) [05:03:20] [PASSED] 0x56A2 (DG2) [05:03:20] [PASSED] 0x56BE (DG2) [05:03:20] [PASSED] 0x56BF (DG2) [05:03:20] [PASSED] 0x5690 (DG2) [05:03:20] [PASSED] 0x5691 (DG2) [05:03:20] [PASSED] 0x5692 (DG2) [05:03:20] [PASSED] 0x56A5 (DG2) [05:03:20] [PASSED] 0x56A6 (DG2) [05:03:20] [PASSED] 0x56B0 (DG2) [05:03:20] [PASSED] 0x56B1 (DG2) [05:03:20] [PASSED] 0x56BA (DG2) [05:03:20] [PASSED] 0x56BB (DG2) [05:03:20] [PASSED] 0x56BC (DG2) [05:03:20] [PASSED] 0x56BD (DG2) [05:03:20] [PASSED] 0x5693 (DG2) [05:03:20] [PASSED] 0x5694 (DG2) [05:03:20] [PASSED] 0x5695 (DG2) [05:03:20] [PASSED] 0x56A3 (DG2) [05:03:20] [PASSED] 0x56A4 (DG2) [05:03:20] [PASSED] 0x56B2 (DG2) [05:03:20] [PASSED] 0x56B3 (DG2) [05:03:20] [PASSED] 0x5696 (DG2) [05:03:20] [PASSED] 0x5697 (DG2) [05:03:20] [PASSED] 0xB69 (PVC) [05:03:20] [PASSED] 0xB6E (PVC) [05:03:20] [PASSED] 0xBD4 (PVC) [05:03:20] [PASSED] 0xBD5 (PVC) [05:03:20] [PASSED] 0xBD6 (PVC) [05:03:20] [PASSED] 0xBD7 (PVC) [05:03:20] [PASSED] 0xBD8 (PVC) [05:03:20] [PASSED] 0xBD9 (PVC) [05:03:20] [PASSED] 0xBDA (PVC) [05:03:20] [PASSED] 0xBDB (PVC) [05:03:20] [PASSED] 0xBE0 (PVC) [05:03:20] [PASSED] 0xBE1 (PVC) [05:03:20] [PASSED] 0xBE5 (PVC) [05:03:20] [PASSED] 0x7D40 (METEORLAKE) [05:03:20] [PASSED] 0x7D45 (METEORLAKE) [05:03:20] [PASSED] 0x7D55 (METEORLAKE) [05:03:20] [PASSED] 0x7D60 (METEORLAKE) [05:03:20] [PASSED] 0x7DD5 (METEORLAKE) [05:03:20] [PASSED] 0x6420 (LUNARLAKE) [05:03:20] [PASSED] 0x64A0 (LUNARLAKE) [05:03:20] [PASSED] 0x64B0 (LUNARLAKE) [05:03:20] [PASSED] 0xE202 (BATTLEMAGE) [05:03:20] [PASSED] 0xE209 (BATTLEMAGE) [05:03:20] [PASSED] 0xE20B (BATTLEMAGE) [05:03:20] [PASSED] 0xE20C (BATTLEMAGE) [05:03:20] [PASSED] 0xE20D (BATTLEMAGE) [05:03:20] [PASSED] 0xE210 (BATTLEMAGE) [05:03:20] [PASSED] 0xE211 (BATTLEMAGE) [05:03:20] [PASSED] 0xE212 (BATTLEMAGE) [05:03:20] [PASSED] 0xE216 (BATTLEMAGE) [05:03:20] [PASSED] 0xE220 (BATTLEMAGE) [05:03:20] [PASSED] 0xE221 (BATTLEMAGE) [05:03:20] [PASSED] 0xE222 (BATTLEMAGE) [05:03:20] [PASSED] 0xE223 (BATTLEMAGE) [05:03:20] [PASSED] 0xB080 (PANTHERLAKE) [05:03:20] [PASSED] 0xB081 (PANTHERLAKE) [05:03:20] [PASSED] 0xB082 (PANTHERLAKE) [05:03:20] [PASSED] 0xB083 (PANTHERLAKE) [05:03:20] [PASSED] 0xB084 (PANTHERLAKE) [05:03:20] [PASSED] 0xB085 (PANTHERLAKE) [05:03:20] [PASSED] 0xB086 (PANTHERLAKE) [05:03:20] [PASSED] 0xB087 (PANTHERLAKE) [05:03:20] [PASSED] 0xB08F (PANTHERLAKE) [05:03:20] [PASSED] 0xB090 (PANTHERLAKE) [05:03:20] [PASSED] 0xB0A0 (PANTHERLAKE) [05:03:20] [PASSED] 0xB0B0 (PANTHERLAKE) [05:03:20] [PASSED] 0xFD80 (PANTHERLAKE) [05:03:20] [PASSED] 0xFD81 (PANTHERLAKE) [05:03:20] [PASSED] 0xD740 (NOVALAKE_S) [05:03:20] [PASSED] 0xD741 (NOVALAKE_S) [05:03:20] [PASSED] 0xD742 (NOVALAKE_S) [05:03:20] [PASSED] 0xD743 (NOVALAKE_S) [05:03:20] [PASSED] 0xD744 (NOVALAKE_S) [05:03:20] [PASSED] 0xD745 (NOVALAKE_S) [05:03:20] [PASSED] 0x674C (CRESCENTISLAND) [05:03:20] [PASSED] 0xD750 (NOVALAKE_P) [05:03:20] [PASSED] 0xD751 (NOVALAKE_P) [05:03:20] [PASSED] 0xD752 (NOVALAKE_P) [05:03:20] [PASSED] 0xD753 (NOVALAKE_P) [05:03:20] [PASSED] 0xD754 (NOVALAKE_P) [05:03:20] [PASSED] 0xD755 (NOVALAKE_P) [05:03:20] [PASSED] 0xD756 (NOVALAKE_P) [05:03:20] [PASSED] 0xD757 (NOVALAKE_P) [05:03:20] [PASSED] 0xD75F (NOVALAKE_P) [05:03:20] =============== [PASSED] check_platform_desc =============== [05:03:20] ===================== [PASSED] xe_pci ====================== [05:03:20] =================== xe_rtp (2 subtests) ==================== [05:03:20] =============== xe_rtp_process_to_sr_tests ================ [05:03:20] [PASSED] coalesce-same-reg [05:03:20] [PASSED] no-match-no-add [05:03:20] [PASSED] match-or [05:03:20] [PASSED] match-or-xfail [05:03:20] [PASSED] no-match-no-add-multiple-rules [05:03:20] [PASSED] two-regs-two-entries [05:03:20] [PASSED] clr-one-set-other [05:03:20] [PASSED] set-field [05:03:20] [PASSED] conflict-duplicate stty: 'standard input': Inappropriate ioctl for device [05:03:20] [PASSED] conflict-not-disjoint [05:03:20] [PASSED] conflict-reg-type [05:03:20] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [05:03:20] ================== xe_rtp_process_tests =================== [05:03:20] [PASSED] active1 [05:03:20] [PASSED] active2 [05:03:20] [PASSED] active-inactive [05:03:20] [PASSED] inactive-active [05:03:20] [PASSED] inactive-1st_or_active-inactive [05:03:20] [PASSED] inactive-2nd_or_active-inactive [05:03:20] [PASSED] inactive-last_or_active-inactive [05:03:20] [PASSED] inactive-no_or_active-inactive [05:03:20] ============== [PASSED] xe_rtp_process_tests =============== [05:03:20] ===================== [PASSED] xe_rtp ====================== [05:03:20] ==================== xe_wa (1 subtest) ===================== [05:03:20] ======================== xe_wa_gt ========================= [05:03:20] [PASSED] TIGERLAKE B0 [05:03:20] [PASSED] DG1 A0 [05:03:20] [PASSED] DG1 B0 [05:03:20] [PASSED] ALDERLAKE_S A0 [05:03:20] [PASSED] ALDERLAKE_S B0 [05:03:20] [PASSED] ALDERLAKE_S C0 [05:03:20] [PASSED] ALDERLAKE_S D0 [05:03:20] [PASSED] ALDERLAKE_P A0 [05:03:20] [PASSED] ALDERLAKE_P B0 [05:03:20] [PASSED] ALDERLAKE_P C0 [05:03:20] [PASSED] ALDERLAKE_S RPLS D0 [05:03:20] [PASSED] ALDERLAKE_P RPLU E0 [05:03:20] [PASSED] DG2 G10 C0 [05:03:20] [PASSED] DG2 G11 B1 [05:03:20] [PASSED] DG2 G12 A1 [05:03:20] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0 [05:03:20] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0 [05:03:20] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0 [05:03:20] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0 [05:03:20] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0 [05:03:20] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1 [05:03:20] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0 [05:03:20] ==================== [PASSED] xe_wa_gt ===================== [05:03:20] ====================== [PASSED] xe_wa ====================== [05:03:20] ============================================================ [05:03:20] Testing complete. Ran 597 tests: passed: 579, skipped: 18 [05:03:20] Elapsed time: 35.291s total, 4.114s configuring, 30.508s building, 0.613s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [05:03:20] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:03: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 [05:03:46] Starting KUnit Kernel (1/1)... [05:03:46] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:03:46] ============ drm_test_pick_cmdline (2 subtests) ============ [05:03:46] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [05:03:46] =============== drm_test_pick_cmdline_named =============== [05:03:46] [PASSED] NTSC [05:03:46] [PASSED] NTSC-J [05:03:46] [PASSED] PAL [05:03:46] [PASSED] PAL-M [05:03:46] =========== [PASSED] drm_test_pick_cmdline_named =========== [05:03:46] ============== [PASSED] drm_test_pick_cmdline ============== [05:03:46] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [05:03:46] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [05:03:46] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [05:03:46] =========== drm_validate_clone_mode (2 subtests) =========== [05:03:46] ============== drm_test_check_in_clone_mode =============== [05:03:46] [PASSED] in_clone_mode [05:03:46] [PASSED] not_in_clone_mode [05:03:46] ========== [PASSED] drm_test_check_in_clone_mode =========== [05:03:46] =============== drm_test_check_valid_clones =============== [05:03:46] [PASSED] not_in_clone_mode [05:03:46] [PASSED] valid_clone [05:03:46] [PASSED] invalid_clone [05:03:46] =========== [PASSED] drm_test_check_valid_clones =========== [05:03:46] ============= [PASSED] drm_validate_clone_mode ============= [05:03:46] ============= drm_validate_modeset (1 subtest) ============= [05:03:46] [PASSED] drm_test_check_connector_changed_modeset [05:03:46] ============== [PASSED] drm_validate_modeset =============== [05:03:46] ====== drm_test_bridge_get_current_state (2 subtests) ====== [05:03:46] [PASSED] drm_test_drm_bridge_get_current_state_atomic [05:03:46] [PASSED] drm_test_drm_bridge_get_current_state_legacy [05:03:46] ======== [PASSED] drm_test_bridge_get_current_state ======== [05:03:46] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ====== [05:03:46] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [05:03:46] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [05:03:46] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy [05:03:46] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [05:03:46] ============== drm_bridge_alloc (2 subtests) =============== [05:03:46] [PASSED] drm_test_drm_bridge_alloc_basic [05:03:46] [PASSED] drm_test_drm_bridge_alloc_get_put [05:03:46] ================ [PASSED] drm_bridge_alloc ================= [05:03:46] ============= drm_cmdline_parser (40 subtests) ============= [05:03:46] [PASSED] drm_test_cmdline_force_d_only [05:03:46] [PASSED] drm_test_cmdline_force_D_only_dvi [05:03:46] [PASSED] drm_test_cmdline_force_D_only_hdmi [05:03:46] [PASSED] drm_test_cmdline_force_D_only_not_digital [05:03:46] [PASSED] drm_test_cmdline_force_e_only [05:03:46] [PASSED] drm_test_cmdline_res [05:03:46] [PASSED] drm_test_cmdline_res_vesa [05:03:46] [PASSED] drm_test_cmdline_res_vesa_rblank [05:03:46] [PASSED] drm_test_cmdline_res_rblank [05:03:46] [PASSED] drm_test_cmdline_res_bpp [05:03:46] [PASSED] drm_test_cmdline_res_refresh [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [05:03:46] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [05:03:46] [PASSED] drm_test_cmdline_res_margins_force_on [05:03:46] [PASSED] drm_test_cmdline_res_vesa_margins [05:03:46] [PASSED] drm_test_cmdline_name [05:03:46] [PASSED] drm_test_cmdline_name_bpp [05:03:46] [PASSED] drm_test_cmdline_name_option [05:03:46] [PASSED] drm_test_cmdline_name_bpp_option [05:03:46] [PASSED] drm_test_cmdline_rotate_0 [05:03:46] [PASSED] drm_test_cmdline_rotate_90 [05:03:46] [PASSED] drm_test_cmdline_rotate_180 [05:03:46] [PASSED] drm_test_cmdline_rotate_270 [05:03:46] [PASSED] drm_test_cmdline_hmirror [05:03:46] [PASSED] drm_test_cmdline_vmirror [05:03:46] [PASSED] drm_test_cmdline_margin_options [05:03:46] [PASSED] drm_test_cmdline_multiple_options [05:03:46] [PASSED] drm_test_cmdline_bpp_extra_and_option [05:03:46] [PASSED] drm_test_cmdline_extra_and_option [05:03:46] [PASSED] drm_test_cmdline_freestanding_options [05:03:46] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [05:03:46] [PASSED] drm_test_cmdline_panel_orientation [05:03:46] ================ drm_test_cmdline_invalid ================= [05:03:46] [PASSED] margin_only [05:03:46] [PASSED] interlace_only [05:03:46] [PASSED] res_missing_x [05:03:46] [PASSED] res_missing_y [05:03:46] [PASSED] res_bad_y [05:03:46] [PASSED] res_missing_y_bpp [05:03:46] [PASSED] res_bad_bpp [05:03:46] [PASSED] res_bad_refresh [05:03:46] [PASSED] res_bpp_refresh_force_on_off [05:03:46] [PASSED] res_invalid_mode [05:03:46] [PASSED] res_bpp_wrong_place_mode [05:03:46] [PASSED] name_bpp_refresh [05:03:46] [PASSED] name_refresh [05:03:46] [PASSED] name_refresh_wrong_mode [05:03:46] [PASSED] name_refresh_invalid_mode [05:03:46] [PASSED] rotate_multiple [05:03:46] [PASSED] rotate_invalid_val [05:03:46] [PASSED] rotate_truncated [05:03:46] [PASSED] invalid_option [05:03:46] [PASSED] invalid_tv_option [05:03:46] [PASSED] truncated_tv_option [05:03:46] ============ [PASSED] drm_test_cmdline_invalid ============= [05:03:46] =============== drm_test_cmdline_tv_options =============== [05:03:46] [PASSED] NTSC [05:03:46] [PASSED] NTSC_443 [05:03:46] [PASSED] NTSC_J [05:03:46] [PASSED] PAL [05:03:46] [PASSED] PAL_M [05:03:46] [PASSED] PAL_N [05:03:46] [PASSED] SECAM [05:03:46] [PASSED] MONO_525 [05:03:46] [PASSED] MONO_625 [05:03:46] =========== [PASSED] drm_test_cmdline_tv_options =========== [05:03:46] =============== [PASSED] drm_cmdline_parser ================ [05:03:46] ========== drmm_connector_hdmi_init (20 subtests) ========== [05:03:46] [PASSED] drm_test_connector_hdmi_init_valid [05:03:46] [PASSED] drm_test_connector_hdmi_init_bpc_8 [05:03:46] [PASSED] drm_test_connector_hdmi_init_bpc_10 [05:03:46] [PASSED] drm_test_connector_hdmi_init_bpc_12 [05:03:46] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [05:03:46] [PASSED] drm_test_connector_hdmi_init_bpc_null [05:03:46] [PASSED] drm_test_connector_hdmi_init_formats_empty [05:03:46] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [05:03:46] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [05:03:46] [PASSED] supported_formats=0x9 yuv420_allowed=1 [05:03:46] [PASSED] supported_formats=0x9 yuv420_allowed=0 [05:03:46] [PASSED] supported_formats=0x3 yuv420_allowed=1 [05:03:46] [PASSED] supported_formats=0x3 yuv420_allowed=0 [05:03:46] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [05:03:46] [PASSED] drm_test_connector_hdmi_init_null_ddc [05:03:46] [PASSED] drm_test_connector_hdmi_init_null_product [05:03:46] [PASSED] drm_test_connector_hdmi_init_null_vendor [05:03:46] [PASSED] drm_test_connector_hdmi_init_product_length_exact [05:03:46] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [05:03:46] [PASSED] drm_test_connector_hdmi_init_product_valid [05:03:46] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [05:03:46] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [05:03:46] [PASSED] drm_test_connector_hdmi_init_vendor_valid [05:03:46] ========= drm_test_connector_hdmi_init_type_valid ========= [05:03:46] [PASSED] HDMI-A [05:03:46] [PASSED] HDMI-B [05:03:46] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [05:03:46] ======== drm_test_connector_hdmi_init_type_invalid ======== [05:03:46] [PASSED] Unknown [05:03:46] [PASSED] VGA [05:03:46] [PASSED] DVI-I [05:03:46] [PASSED] DVI-D [05:03:46] [PASSED] DVI-A [05:03:46] [PASSED] Composite [05:03:46] [PASSED] SVIDEO [05:03:46] [PASSED] LVDS [05:03:46] [PASSED] Component [05:03:46] [PASSED] DIN [05:03:46] [PASSED] DP [05:03:46] [PASSED] TV [05:03:46] [PASSED] eDP [05:03:46] [PASSED] Virtual [05:03:46] [PASSED] DSI [05:03:46] [PASSED] DPI [05:03:46] [PASSED] Writeback [05:03:46] [PASSED] SPI [05:03:46] [PASSED] USB [05:03:46] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [05:03:46] ============ [PASSED] drmm_connector_hdmi_init ============= [05:03:46] ============= drmm_connector_init (3 subtests) ============= [05:03:46] [PASSED] drm_test_drmm_connector_init [05:03:46] [PASSED] drm_test_drmm_connector_init_null_ddc [05:03:46] ========= drm_test_drmm_connector_init_type_valid ========= [05:03:46] [PASSED] Unknown [05:03:46] [PASSED] VGA [05:03:46] [PASSED] DVI-I [05:03:46] [PASSED] DVI-D [05:03:46] [PASSED] DVI-A [05:03:46] [PASSED] Composite [05:03:46] [PASSED] SVIDEO [05:03:46] [PASSED] LVDS [05:03:46] [PASSED] Component [05:03:46] [PASSED] DIN [05:03:46] [PASSED] DP [05:03:46] [PASSED] HDMI-A [05:03:46] [PASSED] HDMI-B [05:03:46] [PASSED] TV [05:03:46] [PASSED] eDP [05:03:46] [PASSED] Virtual [05:03:46] [PASSED] DSI [05:03:46] [PASSED] DPI [05:03:46] [PASSED] Writeback [05:03:46] [PASSED] SPI [05:03:46] [PASSED] USB [05:03:46] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [05:03:46] =============== [PASSED] drmm_connector_init =============== [05:03:46] ========= drm_connector_dynamic_init (6 subtests) ========== [05:03:46] [PASSED] drm_test_drm_connector_dynamic_init [05:03:46] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [05:03:46] [PASSED] drm_test_drm_connector_dynamic_init_not_added [05:03:46] [PASSED] drm_test_drm_connector_dynamic_init_properties [05:03:46] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [05:03:46] [PASSED] Unknown [05:03:46] [PASSED] VGA [05:03:46] [PASSED] DVI-I [05:03:46] [PASSED] DVI-D [05:03:46] [PASSED] DVI-A [05:03:46] [PASSED] Composite [05:03:46] [PASSED] SVIDEO [05:03:46] [PASSED] LVDS [05:03:46] [PASSED] Component [05:03:46] [PASSED] DIN [05:03:46] [PASSED] DP [05:03:46] [PASSED] HDMI-A [05:03:46] [PASSED] HDMI-B [05:03:46] [PASSED] TV [05:03:46] [PASSED] eDP [05:03:46] [PASSED] Virtual [05:03:46] [PASSED] DSI [05:03:46] [PASSED] DPI [05:03:46] [PASSED] Writeback [05:03:46] [PASSED] SPI [05:03:46] [PASSED] USB [05:03:46] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [05:03:46] ======== drm_test_drm_connector_dynamic_init_name ========= [05:03:46] [PASSED] Unknown [05:03:46] [PASSED] VGA [05:03:46] [PASSED] DVI-I [05:03:46] [PASSED] DVI-D [05:03:46] [PASSED] DVI-A [05:03:46] [PASSED] Composite [05:03:46] [PASSED] SVIDEO [05:03:46] [PASSED] LVDS [05:03:46] [PASSED] Component [05:03:46] [PASSED] DIN [05:03:46] [PASSED] DP [05:03:46] [PASSED] HDMI-A [05:03:46] [PASSED] HDMI-B [05:03:46] [PASSED] TV [05:03:46] [PASSED] eDP [05:03:46] [PASSED] Virtual [05:03:46] [PASSED] DSI [05:03:46] [PASSED] DPI [05:03:46] [PASSED] Writeback [05:03:46] [PASSED] SPI [05:03:46] [PASSED] USB [05:03:46] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [05:03:46] =========== [PASSED] drm_connector_dynamic_init ============ [05:03:46] ==== drm_connector_dynamic_register_early (4 subtests) ===== [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [05:03:46] ====== [PASSED] drm_connector_dynamic_register_early ======= [05:03:46] ======= drm_connector_dynamic_register (7 subtests) ======== [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_on_list [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_no_init [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [05:03:46] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [05:03:46] ========= [PASSED] drm_connector_dynamic_register ========== [05:03:46] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [05:03:46] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [05:03:46] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [05:03:46] === [PASSED] drm_connector_attach_broadcast_rgb_property === [05:03:46] ========== drm_get_tv_mode_from_name (2 subtests) ========== [05:03:46] ========== drm_test_get_tv_mode_from_name_valid =========== [05:03:46] [PASSED] NTSC [05:03:46] [PASSED] NTSC-443 [05:03:46] [PASSED] NTSC-J [05:03:46] [PASSED] PAL [05:03:46] [PASSED] PAL-M [05:03:46] [PASSED] PAL-N [05:03:46] [PASSED] SECAM [05:03:46] [PASSED] Mono [05:03:46] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [05:03:46] [PASSED] drm_test_get_tv_mode_from_name_truncated [05:03:46] ============ [PASSED] drm_get_tv_mode_from_name ============ [05:03:46] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [05:03:46] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [05:03:46] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [05:03:46] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [05:03:46] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [05:03:46] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [05:03:46] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [05:03:46] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [05:03:46] [PASSED] VIC 96 [05:03:46] [PASSED] VIC 97 [05:03:46] [PASSED] VIC 101 [05:03:46] [PASSED] VIC 102 [05:03:46] [PASSED] VIC 106 [05:03:46] [PASSED] VIC 107 [05:03:46] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [05:03:46] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [05:03:46] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [05:03:46] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [05:03:46] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [05:03:46] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [05:03:46] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [05:03:46] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [05:03:46] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [05:03:46] [PASSED] Automatic [05:03:46] [PASSED] Full [05:03:46] [PASSED] Limited 16:235 [05:03:46] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [05:03:46] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [05:03:46] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [05:03:46] == drm_hdmi_connector_get_output_format_name (2 subtests) == [05:03:46] === drm_test_drm_hdmi_connector_get_output_format_name ==== [05:03:46] [PASSED] RGB [05:03:46] [PASSED] YUV 4:2:0 [05:03:46] [PASSED] YUV 4:2:2 [05:03:46] [PASSED] YUV 4:4:4 [05:03:46] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [05:03:46] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [05:03:46] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [05:03:46] ============= drm_damage_helper (21 subtests) ============== [05:03:46] [PASSED] drm_test_damage_iter_no_damage [05:03:46] [PASSED] drm_test_damage_iter_no_damage_fractional_src [05:03:46] [PASSED] drm_test_damage_iter_no_damage_src_moved [05:03:46] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [05:03:46] [PASSED] drm_test_damage_iter_no_damage_not_visible [05:03:46] [PASSED] drm_test_damage_iter_no_damage_no_crtc [05:03:46] [PASSED] drm_test_damage_iter_no_damage_no_fb [05:03:46] [PASSED] drm_test_damage_iter_simple_damage [05:03:46] [PASSED] drm_test_damage_iter_single_damage [05:03:46] [PASSED] drm_test_damage_iter_single_damage_intersect_src [05:03:46] [PASSED] drm_test_damage_iter_single_damage_outside_src [05:03:46] [PASSED] drm_test_damage_iter_single_damage_fractional_src [05:03:46] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [05:03:46] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [05:03:46] [PASSED] drm_test_damage_iter_single_damage_src_moved [05:03:46] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [05:03:46] [PASSED] drm_test_damage_iter_damage [05:03:46] [PASSED] drm_test_damage_iter_damage_one_intersect [05:03:46] [PASSED] drm_test_damage_iter_damage_one_outside [05:03:46] [PASSED] drm_test_damage_iter_damage_src_moved [05:03:46] [PASSED] drm_test_damage_iter_damage_not_visible [05:03:46] ================ [PASSED] drm_damage_helper ================ [05:03:46] ============== drm_dp_mst_helper (3 subtests) ============== [05:03:46] ============== drm_test_dp_mst_calc_pbn_mode ============== [05:03:46] [PASSED] Clock 154000 BPP 30 DSC disabled [05:03:46] [PASSED] Clock 234000 BPP 30 DSC disabled [05:03:46] [PASSED] Clock 297000 BPP 24 DSC disabled [05:03:46] [PASSED] Clock 332880 BPP 24 DSC enabled [05:03:46] [PASSED] Clock 324540 BPP 24 DSC enabled [05:03:46] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [05:03:46] ============== drm_test_dp_mst_calc_pbn_div =============== [05:03:46] [PASSED] Link rate 2000000 lane count 4 [05:03:46] [PASSED] Link rate 2000000 lane count 2 [05:03:46] [PASSED] Link rate 2000000 lane count 1 [05:03:46] [PASSED] Link rate 1350000 lane count 4 [05:03:46] [PASSED] Link rate 1350000 lane count 2 [05:03:46] [PASSED] Link rate 1350000 lane count 1 [05:03:46] [PASSED] Link rate 1000000 lane count 4 [05:03:46] [PASSED] Link rate 1000000 lane count 2 [05:03:46] [PASSED] Link rate 1000000 lane count 1 [05:03:46] [PASSED] Link rate 810000 lane count 4 [05:03:46] [PASSED] Link rate 810000 lane count 2 [05:03:46] [PASSED] Link rate 810000 lane count 1 [05:03:46] [PASSED] Link rate 540000 lane count 4 [05:03:46] [PASSED] Link rate 540000 lane count 2 [05:03:46] [PASSED] Link rate 540000 lane count 1 [05:03:46] [PASSED] Link rate 270000 lane count 4 [05:03:46] [PASSED] Link rate 270000 lane count 2 [05:03:46] [PASSED] Link rate 270000 lane count 1 [05:03:46] [PASSED] Link rate 162000 lane count 4 [05:03:46] [PASSED] Link rate 162000 lane count 2 [05:03:46] [PASSED] Link rate 162000 lane count 1 [05:03:46] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [05:03:46] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [05:03:46] [PASSED] DP_ENUM_PATH_RESOURCES with port number [05:03:46] [PASSED] DP_POWER_UP_PHY with port number [05:03:46] [PASSED] DP_POWER_DOWN_PHY with port number [05:03:46] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [05:03:46] [PASSED] DP_ALLOCATE_PAYLOAD with port number [05:03:46] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [05:03:46] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [05:03:46] [PASSED] DP_QUERY_PAYLOAD with port number [05:03:46] [PASSED] DP_QUERY_PAYLOAD with VCPI [05:03:46] [PASSED] DP_REMOTE_DPCD_READ with port number [05:03:46] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [05:03:46] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [05:03:46] [PASSED] DP_REMOTE_DPCD_WRITE with port number [05:03:46] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [05:03:46] [PASSED] DP_REMOTE_DPCD_WRITE with data array [05:03:46] [PASSED] DP_REMOTE_I2C_READ with port number [05:03:46] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [05:03:46] [PASSED] DP_REMOTE_I2C_READ with transactions array [05:03:46] [PASSED] DP_REMOTE_I2C_WRITE with port number [05:03:46] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [05:03:46] [PASSED] DP_REMOTE_I2C_WRITE with data array [05:03:46] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [05:03:46] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [05:03:46] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [05:03:46] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [05:03:46] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [05:03:46] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [05:03:46] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [05:03:46] ================ [PASSED] drm_dp_mst_helper ================ [05:03:46] ================== drm_exec (7 subtests) =================== [05:03:46] [PASSED] sanitycheck [05:03:46] [PASSED] test_lock [05:03:46] [PASSED] test_lock_unlock [05:03:46] [PASSED] test_duplicates [05:03:46] [PASSED] test_prepare [05:03:46] [PASSED] test_prepare_array [05:03:46] [PASSED] test_multiple_loops [05:03:46] ==================== [PASSED] drm_exec ===================== [05:03:46] =========== drm_format_helper_test (17 subtests) =========== [05:03:46] ============== drm_test_fb_xrgb8888_to_gray8 ============== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [05:03:46] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [05:03:46] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [05:03:46] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [05:03:46] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [05:03:46] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [05:03:46] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [05:03:46] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [05:03:46] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [05:03:46] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [05:03:46] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [05:03:46] ============== drm_test_fb_xrgb8888_to_mono =============== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [05:03:46] ==================== drm_test_fb_swab ===================== [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ================ [PASSED] drm_test_fb_swab ================= [05:03:46] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [05:03:46] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [05:03:46] [PASSED] single_pixel_source_buffer [05:03:46] [PASSED] single_pixel_clip_rectangle [05:03:46] [PASSED] well_known_colors [05:03:46] [PASSED] destination_pitch [05:03:46] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [05:03:46] ================= drm_test_fb_clip_offset ================= [05:03:46] [PASSED] pass through [05:03:46] [PASSED] horizontal offset [05:03:46] [PASSED] vertical offset [05:03:46] [PASSED] horizontal and vertical offset [05:03:46] [PASSED] horizontal offset (custom pitch) [05:03:46] [PASSED] vertical offset (custom pitch) [05:03:46] [PASSED] horizontal and vertical offset (custom pitch) [05:03:46] ============= [PASSED] drm_test_fb_clip_offset ============= [05:03:46] =================== drm_test_fb_memcpy ==================== [05:03:46] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [05:03:46] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [05:03:46] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [05:03:46] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [05:03:46] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [05:03:46] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [05:03:46] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [05:03:46] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [05:03:46] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [05:03:46] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [05:03:46] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [05:03:46] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [05:03:46] =============== [PASSED] drm_test_fb_memcpy ================ [05:03:46] ============= [PASSED] drm_format_helper_test ============== [05:03:46] ================= drm_format (18 subtests) ================= [05:03:46] [PASSED] drm_test_format_block_width_invalid [05:03:46] [PASSED] drm_test_format_block_width_one_plane [05:03:46] [PASSED] drm_test_format_block_width_two_plane [05:03:46] [PASSED] drm_test_format_block_width_three_plane [05:03:46] [PASSED] drm_test_format_block_width_tiled [05:03:46] [PASSED] drm_test_format_block_height_invalid [05:03:46] [PASSED] drm_test_format_block_height_one_plane [05:03:46] [PASSED] drm_test_format_block_height_two_plane [05:03:46] [PASSED] drm_test_format_block_height_three_plane [05:03:46] [PASSED] drm_test_format_block_height_tiled [05:03:46] [PASSED] drm_test_format_min_pitch_invalid [05:03:46] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [05:03:46] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [05:03:46] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [05:03:46] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [05:03:46] [PASSED] drm_test_format_min_pitch_two_plane [05:03:46] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [05:03:46] [PASSED] drm_test_format_min_pitch_tiled [05:03:46] =================== [PASSED] drm_format ==================== [05:03:46] ============== drm_framebuffer (10 subtests) =============== [05:03:46] ========== drm_test_framebuffer_check_src_coords ========== [05:03:46] [PASSED] Success: source fits into fb [05:03:46] [PASSED] Fail: overflowing fb with x-axis coordinate [05:03:46] [PASSED] Fail: overflowing fb with y-axis coordinate [05:03:46] [PASSED] Fail: overflowing fb with source width [05:03:46] [PASSED] Fail: overflowing fb with source height [05:03:46] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [05:03:46] [PASSED] drm_test_framebuffer_cleanup [05:03:46] =============== drm_test_framebuffer_create =============== [05:03:46] [PASSED] ABGR8888 normal sizes [05:03:46] [PASSED] ABGR8888 max sizes [05:03:46] [PASSED] ABGR8888 pitch greater than min required [05:03:46] [PASSED] ABGR8888 pitch less than min required [05:03:46] [PASSED] ABGR8888 Invalid width [05:03:46] [PASSED] ABGR8888 Invalid buffer handle [05:03:46] [PASSED] No pixel format [05:03:46] [PASSED] ABGR8888 Width 0 [05:03:46] [PASSED] ABGR8888 Height 0 [05:03:46] [PASSED] ABGR8888 Out of bound height * pitch combination [05:03:46] [PASSED] ABGR8888 Large buffer offset [05:03:46] [PASSED] ABGR8888 Buffer offset for inexistent plane [05:03:46] [PASSED] ABGR8888 Invalid flag [05:03:46] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [05:03:46] [PASSED] ABGR8888 Valid buffer modifier [05:03:46] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [05:03:46] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [05:03:46] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [05:03:46] [PASSED] NV12 Normal sizes [05:03:46] [PASSED] NV12 Max sizes [05:03:46] [PASSED] NV12 Invalid pitch [05:03:46] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [05:03:46] [PASSED] NV12 different modifier per-plane [05:03:46] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [05:03:46] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [05:03:46] [PASSED] NV12 Modifier for inexistent plane [05:03:46] [PASSED] NV12 Handle for inexistent plane [05:03:46] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [05:03:46] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [05:03:46] [PASSED] YVU420 Normal sizes [05:03:46] [PASSED] YVU420 Max sizes [05:03:46] [PASSED] YVU420 Invalid pitch [05:03:46] [PASSED] YVU420 Different pitches [05:03:46] [PASSED] YVU420 Different buffer offsets/pitches [05:03:46] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [05:03:46] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [05:03:46] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [05:03:46] [PASSED] YVU420 Valid modifier [05:03:46] [PASSED] YVU420 Different modifiers per plane [05:03:46] [PASSED] YVU420 Modifier for inexistent plane [05:03:46] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [05:03:46] [PASSED] X0L2 Normal sizes [05:03:46] [PASSED] X0L2 Max sizes [05:03:46] [PASSED] X0L2 Invalid pitch [05:03:46] [PASSED] X0L2 Pitch greater than minimum required [05:03:46] [PASSED] X0L2 Handle for inexistent plane [05:03:46] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [05:03:46] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [05:03:46] [PASSED] X0L2 Valid modifier [05:03:46] [PASSED] X0L2 Modifier for inexistent plane [05:03:46] =========== [PASSED] drm_test_framebuffer_create =========== [05:03:46] [PASSED] drm_test_framebuffer_free [05:03:46] [PASSED] drm_test_framebuffer_init [05:03:46] [PASSED] drm_test_framebuffer_init_bad_format [05:03:46] [PASSED] drm_test_framebuffer_init_dev_mismatch [05:03:46] [PASSED] drm_test_framebuffer_lookup [05:03:46] [PASSED] drm_test_framebuffer_lookup_inexistent [05:03:46] [PASSED] drm_test_framebuffer_modifiers_not_supported [05:03:46] ================= [PASSED] drm_framebuffer ================= [05:03:46] ================ drm_gem_shmem (8 subtests) ================ [05:03:46] [PASSED] drm_gem_shmem_test_obj_create [05:03:46] [PASSED] drm_gem_shmem_test_obj_create_private [05:03:46] [PASSED] drm_gem_shmem_test_pin_pages [05:03:46] [PASSED] drm_gem_shmem_test_vmap [05:03:46] [PASSED] drm_gem_shmem_test_get_sg_table [05:03:46] [PASSED] drm_gem_shmem_test_get_pages_sgt [05:03:46] [PASSED] drm_gem_shmem_test_madvise [05:03:46] [PASSED] drm_gem_shmem_test_purge [05:03:46] ================== [PASSED] drm_gem_shmem ================== [05:03:46] === drm_atomic_helper_connector_hdmi_check (27 subtests) === [05:03:46] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [05:03:46] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [05:03:46] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [05:03:46] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [05:03:46] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [05:03:46] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [05:03:46] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [05:03:46] [PASSED] Automatic [05:03:46] [PASSED] Full [05:03:46] [PASSED] Limited 16:235 [05:03:46] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [05:03:46] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [05:03:46] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [05:03:46] [PASSED] drm_test_check_disable_connector [05:03:46] [PASSED] drm_test_check_hdmi_funcs_reject_rate [05:03:46] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [05:03:46] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [05:03:46] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [05:03:46] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [05:03:46] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [05:03:46] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [05:03:46] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [05:03:46] [PASSED] drm_test_check_output_bpc_dvi [05:03:46] [PASSED] drm_test_check_output_bpc_format_vic_1 [05:03:46] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [05:03:46] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [05:03:46] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [05:03:46] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [05:03:46] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [05:03:46] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [05:03:46] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [05:03:46] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [05:03:46] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [05:03:46] [PASSED] drm_test_check_broadcast_rgb_value [05:03:46] [PASSED] drm_test_check_bpc_8_value [05:03:46] [PASSED] drm_test_check_bpc_10_value [05:03:46] [PASSED] drm_test_check_bpc_12_value [05:03:46] [PASSED] drm_test_check_format_value [05:03:46] [PASSED] drm_test_check_tmds_char_value [05:03:46] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [05:03:46] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) = [05:03:46] [PASSED] drm_test_check_mode_valid [05:03:46] [PASSED] drm_test_check_mode_valid_reject [05:03:46] [PASSED] drm_test_check_mode_valid_reject_rate [05:03:46] [PASSED] drm_test_check_mode_valid_reject_max_clock [05:03:46] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [05:03:46] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) = [05:03:46] [PASSED] drm_test_check_infoframes [05:03:46] [PASSED] drm_test_check_reject_avi_infoframe [05:03:46] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8 [05:03:46] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10 [05:03:46] [PASSED] drm_test_check_reject_audio_infoframe [05:03:46] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes === [05:03:46] ================= drm_managed (2 subtests) ================= [05:03:46] [PASSED] drm_test_managed_release_action [05:03:46] [PASSED] drm_test_managed_run_action [05:03:46] =================== [PASSED] drm_managed =================== [05:03:46] =================== drm_mm (6 subtests) ==================== [05:03:46] [PASSED] drm_test_mm_init [05:03:46] [PASSED] drm_test_mm_debug [05:03:46] [PASSED] drm_test_mm_align32 [05:03:46] [PASSED] drm_test_mm_align64 [05:03:46] [PASSED] drm_test_mm_lowest [05:03:46] [PASSED] drm_test_mm_highest [05:03:46] ===================== [PASSED] drm_mm ====================== [05:03:46] ============= drm_modes_analog_tv (5 subtests) ============= [05:03:46] [PASSED] drm_test_modes_analog_tv_mono_576i [05:03:46] [PASSED] drm_test_modes_analog_tv_ntsc_480i [05:03:46] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [05:03:46] [PASSED] drm_test_modes_analog_tv_pal_576i [05:03:46] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [05:03:46] =============== [PASSED] drm_modes_analog_tv =============== [05:03:46] ============== drm_plane_helper (2 subtests) =============== [05:03:46] =============== drm_test_check_plane_state ================ [05:03:46] [PASSED] clipping_simple [05:03:46] [PASSED] clipping_rotate_reflect [05:03:46] [PASSED] positioning_simple [05:03:46] [PASSED] upscaling [05:03:46] [PASSED] downscaling [05:03:46] [PASSED] rounding1 [05:03:46] [PASSED] rounding2 [05:03:46] [PASSED] rounding3 [05:03:46] [PASSED] rounding4 [05:03:46] =========== [PASSED] drm_test_check_plane_state ============ [05:03:46] =========== drm_test_check_invalid_plane_state ============ [05:03:46] [PASSED] positioning_invalid [05:03:46] [PASSED] upscaling_invalid [05:03:46] [PASSED] downscaling_invalid [05:03:46] ======= [PASSED] drm_test_check_invalid_plane_state ======== [05:03:46] ================ [PASSED] drm_plane_helper ================= [05:03:46] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [05:03:46] ====== drm_test_connector_helper_tv_get_modes_check ======= [05:03:46] [PASSED] None [05:03:46] [PASSED] PAL [05:03:46] [PASSED] NTSC [05:03:46] [PASSED] Both, NTSC Default [05:03:46] [PASSED] Both, PAL Default [05:03:46] [PASSED] Both, NTSC Default, with PAL on command-line [05:03:46] [PASSED] Both, PAL Default, with NTSC on command-line [05:03:46] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [05:03:46] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [05:03:46] ================== drm_rect (9 subtests) =================== [05:03:46] [PASSED] drm_test_rect_clip_scaled_div_by_zero [05:03:46] [PASSED] drm_test_rect_clip_scaled_not_clipped [05:03:46] [PASSED] drm_test_rect_clip_scaled_clipped [05:03:46] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [05:03:46] ================= drm_test_rect_intersect ================= [05:03:46] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [05:03:46] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [05:03:46] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [05:03:46] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [05:03:46] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [05:03:46] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [05:03:46] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [05:03:46] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [05:03:46] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [05:03:46] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [05:03:46] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [05:03:46] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [05:03:46] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [05:03:46] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [05:03:46] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [05:03:46] ============= [PASSED] drm_test_rect_intersect ============= [05:03:46] ================ drm_test_rect_calc_hscale ================ [05:03:46] [PASSED] normal use [05:03:46] [PASSED] out of max range [05:03:46] [PASSED] out of min range [05:03:46] [PASSED] zero dst [05:03:46] [PASSED] negative src [05:03:46] [PASSED] negative dst [05:03:46] ============ [PASSED] drm_test_rect_calc_hscale ============ [05:03:46] ================ drm_test_rect_calc_vscale ================ [05:03:46] [PASSED] normal use [05:03:46] [PASSED] out of max range [05:03:46] [PASSED] out of min range [05:03:46] [PASSED] zero dst [05:03:46] [PASSED] negative src [05:03:46] [PASSED] negative dst stty: 'standard input': Inappropriate ioctl for device [05:03:46] ============ [PASSED] drm_test_rect_calc_vscale ============ [05:03:46] ================== drm_test_rect_rotate =================== [05:03:46] [PASSED] reflect-x [05:03:46] [PASSED] reflect-y [05:03:46] [PASSED] rotate-0 [05:03:46] [PASSED] rotate-90 [05:03:46] [PASSED] rotate-180 [05:03:46] [PASSED] rotate-270 [05:03:46] ============== [PASSED] drm_test_rect_rotate =============== [05:03:46] ================ drm_test_rect_rotate_inv ================= [05:03:46] [PASSED] reflect-x [05:03:46] [PASSED] reflect-y [05:03:46] [PASSED] rotate-0 [05:03:46] [PASSED] rotate-90 [05:03:46] [PASSED] rotate-180 [05:03:46] [PASSED] rotate-270 [05:03:46] ============ [PASSED] drm_test_rect_rotate_inv ============= [05:03:46] ==================== [PASSED] drm_rect ===================== [05:03:46] ============ drm_sysfb_modeset_test (1 subtest) ============ [05:03:46] ============ drm_test_sysfb_build_fourcc_list ============= [05:03:46] [PASSED] no native formats [05:03:46] [PASSED] XRGB8888 as native format [05:03:46] [PASSED] remove duplicates [05:03:46] [PASSED] convert alpha formats [05:03:46] [PASSED] random formats [05:03:46] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [05:03:46] ============= [PASSED] drm_sysfb_modeset_test ============== [05:03:46] ================== drm_fixp (2 subtests) =================== [05:03:46] [PASSED] drm_test_int2fixp [05:03:46] [PASSED] drm_test_sm2fixp [05:03:46] ==================== [PASSED] drm_fixp ===================== [05:03:46] ============================================================ [05:03:46] Testing complete. Ran 621 tests: passed: 621 [05:03:46] Elapsed time: 26.298s total, 1.712s configuring, 24.405s building, 0.179s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [05:03:46] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [05:03:48] 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 [05:03:57] Starting KUnit Kernel (1/1)... [05:03:57] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [05:03:58] ================= ttm_device (5 subtests) ================== [05:03:58] [PASSED] ttm_device_init_basic [05:03:58] [PASSED] ttm_device_init_multiple [05:03:58] [PASSED] ttm_device_fini_basic [05:03:58] [PASSED] ttm_device_init_no_vma_man [05:03:58] ================== ttm_device_init_pools ================== [05:03:58] [PASSED] No DMA allocations, no DMA32 required [05:03:58] [PASSED] DMA allocations, DMA32 required [05:03:58] [PASSED] No DMA allocations, DMA32 required [05:03:58] [PASSED] DMA allocations, no DMA32 required [05:03:58] ============== [PASSED] ttm_device_init_pools ============== [05:03:58] =================== [PASSED] ttm_device ==================== [05:03:58] ================== ttm_pool (8 subtests) =================== [05:03:58] ================== ttm_pool_alloc_basic =================== [05:03:58] [PASSED] One page [05:03:58] [PASSED] More than one page [05:03:58] [PASSED] Above the allocation limit [05:03:58] [PASSED] One page, with coherent DMA mappings enabled [05:03:58] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [05:03:58] ============== [PASSED] ttm_pool_alloc_basic =============== [05:03:58] ============== ttm_pool_alloc_basic_dma_addr ============== [05:03:58] [PASSED] One page [05:03:58] [PASSED] More than one page [05:03:58] [PASSED] Above the allocation limit [05:03:58] [PASSED] One page, with coherent DMA mappings enabled [05:03:58] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [05:03:58] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [05:03:58] [PASSED] ttm_pool_alloc_order_caching_match [05:03:58] [PASSED] ttm_pool_alloc_caching_mismatch [05:03:58] [PASSED] ttm_pool_alloc_order_mismatch [05:03:58] [PASSED] ttm_pool_free_dma_alloc [05:03:58] [PASSED] ttm_pool_free_no_dma_alloc [05:03:58] [PASSED] ttm_pool_fini_basic [05:03:58] ==================== [PASSED] ttm_pool ===================== [05:03:58] ================ ttm_resource (8 subtests) ================= [05:03:58] ================= ttm_resource_init_basic ================= [05:03:58] [PASSED] Init resource in TTM_PL_SYSTEM [05:03:58] [PASSED] Init resource in TTM_PL_VRAM [05:03:58] [PASSED] Init resource in a private placement [05:03:58] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [05:03:58] ============= [PASSED] ttm_resource_init_basic ============= [05:03:58] [PASSED] ttm_resource_init_pinned [05:03:58] [PASSED] ttm_resource_fini_basic [05:03:58] [PASSED] ttm_resource_manager_init_basic [05:03:58] [PASSED] ttm_resource_manager_usage_basic [05:03:58] [PASSED] ttm_resource_manager_set_used_basic [05:03:58] [PASSED] ttm_sys_man_alloc_basic [05:03:58] [PASSED] ttm_sys_man_free_basic [05:03:58] ================== [PASSED] ttm_resource =================== [05:03:58] =================== ttm_tt (15 subtests) =================== [05:03:58] ==================== ttm_tt_init_basic ==================== [05:03:58] [PASSED] Page-aligned size [05:03:58] [PASSED] Extra pages requested [05:03:58] ================ [PASSED] ttm_tt_init_basic ================ [05:03:58] [PASSED] ttm_tt_init_misaligned [05:03:58] [PASSED] ttm_tt_fini_basic [05:03:58] [PASSED] ttm_tt_fini_sg [05:03:58] [PASSED] ttm_tt_fini_shmem [05:03:58] [PASSED] ttm_tt_create_basic [05:03:58] [PASSED] ttm_tt_create_invalid_bo_type [05:03:58] [PASSED] ttm_tt_create_ttm_exists [05:03:58] [PASSED] ttm_tt_create_failed [05:03:58] [PASSED] ttm_tt_destroy_basic [05:03:58] [PASSED] ttm_tt_populate_null_ttm [05:03:58] [PASSED] ttm_tt_populate_populated_ttm [05:03:58] [PASSED] ttm_tt_unpopulate_basic [05:03:58] [PASSED] ttm_tt_unpopulate_empty_ttm [05:03:58] [PASSED] ttm_tt_swapin_basic [05:03:58] ===================== [PASSED] ttm_tt ====================== [05:03:58] =================== ttm_bo (14 subtests) =================== [05:03:58] =========== ttm_bo_reserve_optimistic_no_ticket =========== [05:03:58] [PASSED] Cannot be interrupted and sleeps [05:03:58] [PASSED] Cannot be interrupted, locks straight away [05:03:58] [PASSED] Can be interrupted, sleeps [05:03:58] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [05:03:58] [PASSED] ttm_bo_reserve_locked_no_sleep [05:03:58] [PASSED] ttm_bo_reserve_no_wait_ticket [05:03:58] [PASSED] ttm_bo_reserve_double_resv [05:03:58] [PASSED] ttm_bo_reserve_interrupted [05:03:58] [PASSED] ttm_bo_reserve_deadlock [05:03:58] [PASSED] ttm_bo_unreserve_basic [05:03:58] [PASSED] ttm_bo_unreserve_pinned [05:03:58] [PASSED] ttm_bo_unreserve_bulk [05:03:58] [PASSED] ttm_bo_fini_basic [05:03:58] [PASSED] ttm_bo_fini_shared_resv [05:03:58] [PASSED] ttm_bo_pin_basic [05:03:58] [PASSED] ttm_bo_pin_unpin_resource [05:03:58] [PASSED] ttm_bo_multiple_pin_one_unpin [05:03:58] ===================== [PASSED] ttm_bo ====================== [05:03:58] ============== ttm_bo_validate (22 subtests) =============== [05:03:58] ============== ttm_bo_init_reserved_sys_man =============== [05:03:58] [PASSED] Buffer object for userspace [05:03:58] [PASSED] Kernel buffer object [05:03:58] [PASSED] Shared buffer object [05:03:58] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [05:03:58] ============== ttm_bo_init_reserved_mock_man ============== [05:03:58] [PASSED] Buffer object for userspace [05:03:58] [PASSED] Kernel buffer object [05:03:58] [PASSED] Shared buffer object [05:03:58] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [05:03:58] [PASSED] ttm_bo_init_reserved_resv [05:03:58] ================== ttm_bo_validate_basic ================== [05:03:58] [PASSED] Buffer object for userspace [05:03:58] [PASSED] Kernel buffer object [05:03:58] [PASSED] Shared buffer object [05:03:58] ============== [PASSED] ttm_bo_validate_basic ============== [05:03:58] [PASSED] ttm_bo_validate_invalid_placement [05:03:58] ============= ttm_bo_validate_same_placement ============== [05:03:58] [PASSED] System manager [05:03:58] [PASSED] VRAM manager [05:03:58] ========= [PASSED] ttm_bo_validate_same_placement ========== [05:03:58] [PASSED] ttm_bo_validate_failed_alloc [05:03:58] [PASSED] ttm_bo_validate_pinned [05:03:58] [PASSED] ttm_bo_validate_busy_placement [05:03:58] ================ ttm_bo_validate_multihop ================= [05:03:58] [PASSED] Buffer object for userspace [05:03:58] [PASSED] Kernel buffer object [05:03:58] [PASSED] Shared buffer object [05:03:58] ============ [PASSED] ttm_bo_validate_multihop ============= [05:03:58] ========== ttm_bo_validate_no_placement_signaled ========== [05:03:58] [PASSED] Buffer object in system domain, no page vector [05:03:58] [PASSED] Buffer object in system domain with an existing page vector [05:03:58] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [05:03:58] ======== ttm_bo_validate_no_placement_not_signaled ======== [05:03:58] [PASSED] Buffer object for userspace [05:03:58] [PASSED] Kernel buffer object [05:03:58] [PASSED] Shared buffer object [05:03:58] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [05:03:58] [PASSED] ttm_bo_validate_move_fence_signaled [05:03:58] ========= ttm_bo_validate_move_fence_not_signaled ========= [05:03:58] [PASSED] Waits for GPU [05:03:58] [PASSED] Tries to lock straight away [05:03:58] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [05:03:58] [PASSED] ttm_bo_validate_swapout [05:03:58] [PASSED] ttm_bo_validate_happy_evict [05:03:58] [PASSED] ttm_bo_validate_all_pinned_evict [05:03:58] [PASSED] ttm_bo_validate_allowed_only_evict [05:03:58] [PASSED] ttm_bo_validate_deleted_evict [05:03:58] [PASSED] ttm_bo_validate_busy_domain_evict [05:03:58] [PASSED] ttm_bo_validate_evict_gutting [05:03:58] [PASSED] ttm_bo_validate_recrusive_evict stty: 'standard input': Inappropriate ioctl for device [05:03:58] ================= [PASSED] ttm_bo_validate ================= [05:03:58] ============================================================ [05:03:58] Testing complete. Ran 102 tests: passed: 102 [05:03:58] Elapsed time: 11.340s total, 1.709s configuring, 9.415s building, 0.181s running + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Xe.CI.BAT: success for Rust GPU buddy allocator bindings (rev3) 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes ` (3 preceding siblings ...) 2026-03-20 5:04 ` ✓ CI.KUnit: success " Patchwork @ 2026-03-20 5:38 ` Patchwork 2026-03-21 1:36 ` ✗ Xe.CI.FULL: failure " Patchwork 2026-03-23 21:02 ` [PATCH v14 0/2] Rust GPU buddy allocator bindings Danilo Krummrich 6 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2026-03-20 5:38 UTC (permalink / raw) To: Joel Fernandes; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 1001 bytes --] == Series Details == Series: Rust GPU buddy allocator bindings (rev3) URL : https://patchwork.freedesktop.org/series/162098/ State : success == Summary == CI Bug Log - changes from xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a_BAT -> xe-pw-162098v3_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (14 -> 14) ------------------------------ No changes in participating hosts Changes ------- No changes found Build changes ------------- * IGT: IGT_8811 -> IGT_8812 * Linux: xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a -> xe-pw-162098v3 IGT_8811: cc3169e72592a56b806ce54a87060519151ad5fe @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8812: 8812 xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a: 4ae9f18564e78a5447be68aa1e9232a4f2c37b5a xe-pw-162098v3: 162098v3 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/index.html [-- Attachment #2: Type: text/html, Size: 1563 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✗ Xe.CI.FULL: failure for Rust GPU buddy allocator bindings (rev3) 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes ` (4 preceding siblings ...) 2026-03-20 5:38 ` ✓ Xe.CI.BAT: " Patchwork @ 2026-03-21 1:36 ` Patchwork 2026-03-23 21:02 ` [PATCH v14 0/2] Rust GPU buddy allocator bindings Danilo Krummrich 6 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2026-03-21 1:36 UTC (permalink / raw) To: Joel Fernandes; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 48374 bytes --] == Series Details == Series: Rust GPU buddy allocator bindings (rev3) URL : https://patchwork.freedesktop.org/series/162098/ State : failure == Summary == CI Bug Log - changes from xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a_FULL -> xe-pw-162098v3_FULL ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with xe-pw-162098v3_FULL absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in xe-pw-162098v3_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (2 -> 2) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in xe-pw-162098v3_FULL: ### IGT changes ### #### Possible regressions #### * igt@kms_plane@plane-panning-bottom-right-suspend: - shard-bmg: [PASS][1] -> [DMESG-WARN][2] +1 other test dmesg-warn [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-4/igt@kms_plane@plane-panning-bottom-right-suspend.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_plane@plane-panning-bottom-right-suspend.html Known issues ------------ Here are the changes found in xe-pw-162098v3_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip: - shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#7059] / [Intel XE#7085]) [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html * igt@kms_big_fb@y-tiled-64bpp-rotate-90: - shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#1124]) +6 other tests skip [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-addfb: - shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2328] / [Intel XE#7367]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_big_fb@yf-tiled-addfb.html * igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p: - shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#2314] / [Intel XE#2894] / [Intel XE#7373]) [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-8/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html * igt@kms_bw@linear-tiling-4-displays-3840x2160p: - shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#367] / [Intel XE#7354]) +4 other tests skip [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_bw@linear-tiling-4-displays-3840x2160p.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-d-hdmi-a-3: - shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#2652]) +4 other tests skip [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#3432]) +3 other tests skip [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs: - shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#3432]) [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-lnl-3/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs: - shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2887]) +8 other tests skip [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html * igt@kms_cdclk@mode-transition: - shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2724] / [Intel XE#7449]) [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@kms_cdclk@mode-transition.html * igt@kms_chamelium_edid@dp-edid-read: - shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2252]) +7 other tests skip [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_chamelium_edid@dp-edid-read.html * igt@kms_content_protection@srm@pipe-a-dp-2: - shard-bmg: NOTRUN -> [FAIL][14] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_content_protection@srm@pipe-a-dp-2.html * igt@kms_content_protection@uevent@pipe-a-dp-2: - shard-bmg: NOTRUN -> [FAIL][15] ([Intel XE#6707] / [Intel XE#7439]) [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-8/igt@kms_content_protection@uevent@pipe-a-dp-2.html * igt@kms_cursor_crc@cursor-offscreen-128x42: - shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2320]) +3 other tests skip [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_cursor_crc@cursor-offscreen-128x42.html * igt@kms_cursor_crc@cursor-sliding-512x512: - shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#2321] / [Intel XE#7355]) +3 other tests skip [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-9/igt@kms_cursor_crc@cursor-sliding-512x512.html * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic: - shard-bmg: [PASS][18] -> [SKIP][19] ([Intel XE#2291]) +3 other tests skip [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html * igt@kms_cursor_legacy@cursora-vs-flipb-atomic: - shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2291]) +2 other tests skip [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size: - shard-bmg: [PASS][21] -> [DMESG-WARN][22] ([Intel XE#5354]) [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic: - shard-bmg: [PASS][23] -> [FAIL][24] ([Intel XE#7571]) [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc: - shard-bmg: [PASS][25] -> [SKIP][26] ([Intel XE#1340]) [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-8/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html * igt@kms_dp_linktrain_fallback@dp-fallback: - shard-bmg: [PASS][27] -> [SKIP][28] ([Intel XE#4294]) [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-2/igt@kms_dp_linktrain_fallback@dp-fallback.html [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_dp_linktrain_fallback@dp-fallback.html * igt@kms_dsc@dsc-fractional-bpp: - shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2244]) +1 other test skip [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@kms_dsc@dsc-fractional-bpp.html * igt@kms_feature_discovery@psr1: - shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#2374] / [Intel XE#6127]) [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-8/igt@kms_feature_discovery@psr1.html * igt@kms_flip@2x-dpms-vs-vblank-race: - shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2316]) [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_flip@2x-dpms-vs-vblank-race.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible: - shard-bmg: [PASS][32] -> [SKIP][33] ([Intel XE#2316]) +3 other tests skip [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling: - shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#7178] / [Intel XE#7351]) +2 other tests skip [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling: - shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#7178] / [Intel XE#7349]) [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff: - shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#4141]) +10 other tests skip [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbc-tiling-y: - shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#2352] / [Intel XE#7399]) [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-tiling-y.html * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt: - shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2311]) +15 other tests skip [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render: - shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2312]) +3 other tests skip [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-blt: - shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render: - shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#2313]) +14 other tests skip [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html * igt@kms_hdr@static-toggle: - shard-bmg: [PASS][42] -> [SKIP][43] ([Intel XE#1503]) [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-2/igt@kms_hdr@static-toggle.html [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_hdr@static-toggle.html * igt@kms_joiner@basic-big-joiner: - shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#6901]) [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_joiner@basic-big-joiner.html * igt@kms_joiner@basic-force-big-joiner: - shard-bmg: [PASS][45] -> [SKIP][46] ([Intel XE#7086]) [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-8/igt@kms_joiner@basic-force-big-joiner.html [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_joiner@basic-force-big-joiner.html * igt@kms_joiner@basic-ultra-joiner: - shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#6911] / [Intel XE#7378]) [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-9/igt@kms_joiner@basic-ultra-joiner.html * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping: - shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#7283]) +4 other tests skip [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html * igt@kms_plane_lowres@tiling-y: - shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#2393]) [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-9/igt@kms_plane_lowres@tiling-y.html * igt@kms_plane_multiple@2x-tiling-x: - shard-bmg: [PASS][50] -> [SKIP][51] ([Intel XE#4596]) [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-4/igt@kms_plane_multiple@2x-tiling-x.html [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-x.html * igt@kms_pm_dc@dc6-dpms: - shard-lnl: [PASS][52] -> [FAIL][53] ([Intel XE#7340]) [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-lnl-6/igt@kms_pm_dc@dc6-dpms.html [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-lnl-8/igt@kms_pm_dc@dc6-dpms.html * igt@kms_pm_lpsp@kms-lpsp: - shard-bmg: NOTRUN -> [SKIP][54] ([Intel XE#2499]) [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_pm_rpm@dpms-lpsp: - shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836]) [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@kms_pm_rpm@dpms-lpsp.html * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf: - shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#1489]) +3 other tests skip [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-2/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html * igt@kms_psr@psr-suspend: - shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#2234] / [Intel XE#2850]) +8 other tests skip [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_psr@psr-suspend.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-lnl: [PASS][58] -> [SKIP][59] ([Intel XE#4692] / [Intel XE#7508]) [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-lnl-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-lnl-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0: - shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#2330] / [Intel XE#5813]) [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-90: - shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html * igt@kms_sharpness_filter@filter-formats: - shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#6503]) [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_sharpness_filter@filter-formats.html * igt@kms_vrr@flip-basic-fastset: - shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#1499]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_vrr@flip-basic-fastset.html * igt@kms_vrr@negative-basic: - shard-bmg: [PASS][64] -> [SKIP][65] ([Intel XE#1499]) [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-9/igt@kms_vrr@negative-basic.html [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_vrr@negative-basic.html * igt@xe_compute@ccs-mode-compute-kernel: - shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#6599]) [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@xe_compute@ccs-mode-compute-kernel.html * igt@xe_eudebug@basic-vm-bind-vm-destroy: - shard-bmg: NOTRUN -> [SKIP][67] ([Intel XE#4837]) +5 other tests skip [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-10/igt@xe_eudebug@basic-vm-bind-vm-destroy.html * igt@xe_eudebug_online@set-breakpoint: - shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#4837] / [Intel XE#6665]) +5 other tests skip [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@xe_eudebug_online@set-breakpoint.html * igt@xe_evict@evict-beng-mixed-many-threads-small: - shard-bmg: [PASS][69] -> [INCOMPLETE][70] ([Intel XE#6321]) [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@xe_evict@evict-beng-mixed-many-threads-small.html [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@xe_evict@evict-beng-mixed-many-threads-small.html * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind: - shard-bmg: NOTRUN -> [SKIP][71] ([Intel XE#2322] / [Intel XE#7372]) +6 other tests skip [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind.html * igt@xe_exec_fault_mode@once-multi-queue-rebind-prefetch: - shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#7136]) +6 other tests skip [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-8/igt@xe_exec_fault_mode@once-multi-queue-rebind-prefetch.html * igt@xe_exec_multi_queue@few-execs-preempt-mode-basic: - shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#6874]) +22 other tests skip [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@xe_exec_multi_queue@few-execs-preempt-mode-basic.html * igt@xe_exec_multi_queue@one-queue-close-fd-smem: - shard-lnl: NOTRUN -> [SKIP][74] ([Intel XE#6874]) +1 other test skip [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-lnl-3/igt@xe_exec_multi_queue@one-queue-close-fd-smem.html * igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-rebind: - shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#7138]) +6 other tests skip [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-rebind.html * igt@xe_module_load@load: - shard-bmg: ([PASS][76], [PASS][77], [PASS][78], [PASS][79], [PASS][80], [PASS][81], [PASS][82], [PASS][83], [PASS][84], [PASS][85], [PASS][86], [PASS][87], [PASS][88], [PASS][89], [PASS][90], [PASS][91], [PASS][92], [PASS][93], [PASS][94], [PASS][95], [PASS][96], [PASS][97], [PASS][98], [PASS][99], [PASS][100]) -> ([PASS][101], [PASS][102], [PASS][103], [PASS][104], [PASS][105], [PASS][106], [PASS][107], [PASS][108], [PASS][109], [PASS][110], [PASS][111], [PASS][112], [PASS][113], [PASS][114], [PASS][115], [PASS][116], [PASS][117], [PASS][118], [PASS][119], [PASS][120], [PASS][121], [PASS][122], [PASS][123], [PASS][124], [PASS][125], [SKIP][126]) ([Intel XE#2457] / [Intel XE#7405]) [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@xe_module_load@load.html [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-3/igt@xe_module_load@load.html [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-4/igt@xe_module_load@load.html [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-9/igt@xe_module_load@load.html [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-1/igt@xe_module_load@load.html [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-3/igt@xe_module_load@load.html [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-1/igt@xe_module_load@load.html [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-1/igt@xe_module_load@load.html [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-10/igt@xe_module_load@load.html [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-4/igt@xe_module_load@load.html [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-2/igt@xe_module_load@load.html [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-2/igt@xe_module_load@load.html [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-3/igt@xe_module_load@load.html [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-9/igt@xe_module_load@load.html [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@xe_module_load@load.html [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@xe_module_load@load.html [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@xe_module_load@load.html [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@xe_module_load@load.html [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-8/igt@xe_module_load@load.html [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-7/igt@xe_module_load@load.html [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-7/igt@xe_module_load@load.html [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-10/igt@xe_module_load@load.html [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-8/igt@xe_module_load@load.html [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-9/igt@xe_module_load@load.html [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@xe_module_load@load.html [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@xe_module_load@load.html [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@xe_module_load@load.html [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@xe_module_load@load.html [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@xe_module_load@load.html [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-8/igt@xe_module_load@load.html [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-8/igt@xe_module_load@load.html [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@xe_module_load@load.html [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-10/igt@xe_module_load@load.html [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-10/igt@xe_module_load@load.html [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-10/igt@xe_module_load@load.html [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-2/igt@xe_module_load@load.html [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-2/igt@xe_module_load@load.html [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@xe_module_load@load.html [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-9/igt@xe_module_load@load.html [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-9/igt@xe_module_load@load.html [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@xe_module_load@load.html [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@xe_module_load@load.html [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@xe_module_load@load.html [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@xe_module_load@load.html [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@xe_module_load@load.html [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@xe_module_load@load.html [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@xe_module_load@load.html [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@xe_module_load@load.html [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@xe_module_load@load.html [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@xe_module_load@load.html [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@xe_module_load@load.html * igt@xe_multigpu_svm@mgpu-pagefault-conflict: - shard-bmg: NOTRUN -> [SKIP][127] ([Intel XE#6964]) +2 other tests skip [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-2/igt@xe_multigpu_svm@mgpu-pagefault-conflict.html * igt@xe_pat@pat-index-xehpc: - shard-bmg: NOTRUN -> [SKIP][128] ([Intel XE#1420]) [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@xe_pat@pat-index-xehpc.html * igt@xe_pm@d3cold-mmap-vram: - shard-bmg: NOTRUN -> [SKIP][129] ([Intel XE#2284] / [Intel XE#7370]) +1 other test skip [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@xe_pm@d3cold-mmap-vram.html * igt@xe_pxp@pxp-termination-key-update-post-termination-irq: - shard-bmg: NOTRUN -> [SKIP][130] ([Intel XE#4733] / [Intel XE#7417]) +1 other test skip [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@xe_pxp@pxp-termination-key-update-post-termination-irq.html * igt@xe_sriov_flr@flr-vfs-parallel: - shard-bmg: [PASS][131] -> [FAIL][132] ([Intel XE#6569]) [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-10/igt@xe_sriov_flr@flr-vfs-parallel.html [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@xe_sriov_flr@flr-vfs-parallel.html #### Possible fixes #### * igt@intel_hwmon@hwmon-write: - shard-bmg: [FAIL][133] ([Intel XE#7445]) -> [PASS][134] [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@intel_hwmon@hwmon-write.html [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@intel_hwmon@hwmon-write.html * igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p: - shard-bmg: [SKIP][135] ([Intel XE#2314] / [Intel XE#2894] / [Intel XE#7373]) -> [PASS][136] [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy: - shard-bmg: [SKIP][137] ([Intel XE#2291]) -> [PASS][138] +3 other tests pass [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions: - shard-bmg: [SKIP][139] ([Intel XE#2291] / [Intel XE#7343]) -> [PASS][140] +1 other test pass [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html * igt@kms_flip@2x-plain-flip-fb-recreate: - shard-bmg: [SKIP][141] ([Intel XE#2316]) -> [PASS][142] +5 other tests pass [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@kms_flip@2x-plain-flip-fb-recreate.html [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@kms_flip@2x-plain-flip-fb-recreate.html * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-lnl: [FAIL][143] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][144] +1 other test pass [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1: - shard-lnl: [FAIL][145] ([Intel XE#301]) -> [PASS][146] [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html * igt@kms_hdr@invalid-hdr: - shard-bmg: [SKIP][147] ([Intel XE#1503]) -> [PASS][148] [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@kms_hdr@invalid-hdr.html [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_hdr@invalid-hdr.html * igt@kms_plane_cursor@overlay: - shard-bmg: [FAIL][149] -> [PASS][150] +1 other test pass [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-2/igt@kms_plane_cursor@overlay.html [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-10/igt@kms_plane_cursor@overlay.html * igt@xe_evict@evict-mixed-many-threads-small: - shard-bmg: [INCOMPLETE][151] ([Intel XE#6321]) -> [PASS][152] [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-7/igt@xe_evict@evict-mixed-many-threads-small.html [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-10/igt@xe_evict@evict-mixed-many-threads-small.html * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma: - shard-lnl: [FAIL][153] ([Intel XE#5625]) -> [PASS][154] [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-lnl-3/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-lnl-6/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html * igt@xe_exec_threads@threads-hang-shared-vm-userptr-rebind: - shard-bmg: [ABORT][155] -> [PASS][156] [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-2/igt@xe_exec_threads@threads-hang-shared-vm-userptr-rebind.html [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-6/igt@xe_exec_threads@threads-hang-shared-vm-userptr-rebind.html * igt@xe_pm@s2idle-mocs: - shard-bmg: [INCOMPLETE][157] -> [PASS][158] [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-8/igt@xe_pm@s2idle-mocs.html [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@xe_pm@s2idle-mocs.html * igt@xe_sriov_auto_provisioning@fair-allocation@numvfs-random: - shard-bmg: [FAIL][159] ([Intel XE#5937]) -> [PASS][160] +1 other test pass [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@xe_sriov_auto_provisioning@fair-allocation@numvfs-random.html [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@xe_sriov_auto_provisioning@fair-allocation@numvfs-random.html #### Warnings #### * igt@kms_content_protection@atomic-dpms: - shard-bmg: [FAIL][161] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) -> [SKIP][162] ([Intel XE#2341]) [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-4/igt@kms_content_protection@atomic-dpms.html [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@srm: - shard-bmg: [SKIP][163] ([Intel XE#2341]) -> [FAIL][164] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@kms_content_protection@srm.html [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_content_protection@srm.html * igt@kms_content_protection@uevent: - shard-bmg: [SKIP][165] ([Intel XE#2341]) -> [FAIL][166] ([Intel XE#6707] / [Intel XE#7439]) [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@kms_content_protection@uevent.html [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-8/igt@kms_content_protection@uevent.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move: - shard-bmg: [SKIP][167] ([Intel XE#2312]) -> [SKIP][168] ([Intel XE#2311]) +13 other tests skip [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move.html [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt: - shard-bmg: [SKIP][169] ([Intel XE#4141]) -> [SKIP][170] ([Intel XE#2312]) +2 other tests skip [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt: - shard-bmg: [SKIP][171] ([Intel XE#2312]) -> [SKIP][172] ([Intel XE#4141]) +7 other tests skip [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render: - shard-bmg: [SKIP][173] ([Intel XE#2311]) -> [SKIP][174] ([Intel XE#2312]) +23 other tests skip [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt: - shard-bmg: [SKIP][175] ([Intel XE#2312]) -> [SKIP][176] ([Intel XE#2313]) +11 other tests skip [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc: - shard-bmg: [SKIP][177] ([Intel XE#2313]) -> [SKIP][178] ([Intel XE#2312]) +12 other tests skip [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc.html [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc.html * igt@kms_plane_multiple@2x-tiling-y: - shard-bmg: [SKIP][179] ([Intel XE#5021] / [Intel XE#7377]) -> [SKIP][180] ([Intel XE#4596]) [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-8/igt@kms_plane_multiple@2x-tiling-y.html [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_plane_multiple@2x-tiling-y.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90: - shard-bmg: [SKIP][181] ([Intel XE#3904] / [Intel XE#7342]) -> [SKIP][182] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342]) +1 other test skip [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html * igt@kms_rotation_crc@sprite-rotation-90: - shard-bmg: [SKIP][183] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342]) -> [SKIP][184] ([Intel XE#3904] / [Intel XE#7342]) +3 other tests skip [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-3/igt@kms_rotation_crc@sprite-rotation-90.html [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-1/igt@kms_rotation_crc@sprite-rotation-90.html * igt@kms_tiled_display@basic-test-pattern: - shard-bmg: [FAIL][185] ([Intel XE#1729] / [Intel XE#7424]) -> [SKIP][186] ([Intel XE#2426] / [Intel XE#5848]) [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern.html [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern.html [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178 [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340 [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420 [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#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499 [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503 [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729 [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244 [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252 [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284 [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291 [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311 [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312 [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313 [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314 [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316 [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320 [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321 [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322 [Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328 [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330 [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341 [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352 [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374 [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457 [Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499 [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652 [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724 [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#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894 [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#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149 [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#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367 [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#4294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4294 [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596 [Intel XE#4692]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4692 [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733 [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837 [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021 [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354 [Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625 [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813 [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848 [Intel XE#5937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5937 [Intel XE#6127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6127 [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#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569 [Intel XE#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599 [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665 [Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707 [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874 [Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901 [Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911 [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964 [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#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085 [Intel XE#7086]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7086 [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136 [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138 [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178 [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283 [Intel XE#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340 [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#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349 [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351 [Intel XE#7354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7354 [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#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367 [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#7373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7373 [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374 [Intel XE#7377]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7377 [Intel XE#7378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7378 [Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383 [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399 [Intel XE#7405]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7405 [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#7439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7439 [Intel XE#7445]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7445 [Intel XE#7449]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7449 [Intel XE#7508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7508 [Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571 [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836 Build changes ------------- * IGT: IGT_8811 -> IGT_8812 * Linux: xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a -> xe-pw-162098v3 IGT_8811: cc3169e72592a56b806ce54a87060519151ad5fe @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8812: 8812 xe-4749-4ae9f18564e78a5447be68aa1e9232a4f2c37b5a: 4ae9f18564e78a5447be68aa1e9232a4f2c37b5a xe-pw-162098v3: 162098v3 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162098v3/index.html [-- Attachment #2: Type: text/html, Size: 54669 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v14 0/2] Rust GPU buddy allocator bindings 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes ` (5 preceding siblings ...) 2026-03-21 1:36 ` ✗ Xe.CI.FULL: failure " Patchwork @ 2026-03-23 21:02 ` Danilo Krummrich 6 siblings, 0 replies; 13+ messages in thread From: Danilo Krummrich @ 2026-03-23 21:02 UTC (permalink / raw) To: Joel Fernandes Cc: linux-kernel, Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Dave Airlie, Daniel Almeida, Koen Koning, dri-devel, rust-for-linux, Nikola Djukic, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Jonathan Corbet, Alex Deucher, Christian König, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin, Huang Rui, Matthew Auld, Matthew Brost, Lucas De Marchi, Thomas Hellström, Helge Deller, Alex Gaynor, Boqun Feng, John Hubbard, Alistair Popple, Timur Tabi, Edwin Peer, Alexandre Courbot, Andrea Righi, Andy Ritger, Zhi Wang, Balbir Singh, Philipp Stanner, Elle Rhumsaa, alexeyi, Eliot Courtney, joel, linux-doc, amd-gfx, intel-gfx, intel-xe, linux-fbdev On Fri Mar 20, 2026 at 5:57 AM CET, Joel Fernandes wrote: Applied to drm-rust-next, thanks! > Joel Fernandes (2): > rust: gpu: Add GPU buddy allocator bindings [ * Use doc-comments for GpuBuddyAllocMode methods and GpuBuddyGuard, * Fix comma splice in GpuBuddyParams::chunk_size doc-comment, * Remove redundant summary in GpuBuddy::new doc-comment, * Drop Rust helper for gpu_buddy_block_size(). - Danilo ] > MAINTAINERS: gpu: buddy: Update reviewer ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-03-23 21:02 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-03-20 4:57 [PATCH v14 0/2] Rust GPU buddy allocator bindings Joel Fernandes 2026-03-20 4:57 ` [PATCH v14 1/2] rust: gpu: Add " Joel Fernandes 2026-03-20 12:16 ` Alexandre Courbot 2026-03-20 13:04 ` Gary Guo 2026-03-20 19:50 ` Joel Fernandes 2026-03-20 4:57 ` [PATCH v14 2/2] MAINTAINERS: gpu: buddy: Update reviewer Joel Fernandes 2026-03-20 12:16 ` Alexandre Courbot 2026-03-21 0:06 ` Joel Fernandes 2026-03-20 5:02 ` ✗ CI.checkpatch: warning for Rust GPU buddy allocator bindings (rev3) Patchwork 2026-03-20 5:04 ` ✓ CI.KUnit: success " Patchwork 2026-03-20 5:38 ` ✓ Xe.CI.BAT: " Patchwork 2026-03-21 1:36 ` ✗ Xe.CI.FULL: failure " Patchwork 2026-03-23 21:02 ` [PATCH v14 0/2] Rust GPU buddy allocator bindings Danilo Krummrich
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox