* [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB
@ 2025-04-03 18:40 Tomasz Lis
2025-04-03 18:40 ` [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion Tomasz Lis
` (11 more replies)
0 siblings, 12 replies; 23+ messages in thread
From: Tomasz Lis @ 2025-04-03 18:40 UTC (permalink / raw)
To: intel-xe
Cc: Michał Winiarski, Michał Wajdeczko,
Piotr Piórkowski, Matthew Brost, Lucas De Marchi
To support VF Migration, it is necessary to do fixups to any
non-virtualized resources. These fixups need to be applied within
VM, on the KMD working with VF.
This series adds two fixup functions to the recovery worker:
* for fixing drm_mm nodes which represent GGTT allocations
* for fixing content of outgoing CTB buffer
v2: Fixed missing include, made checkpatch happy
v3: Moved some functs to xe_ggtt.c; moved shift computation to just
after querying; improved documentation; switched some warns to asserts;
skipping fixups when GGTT shift eq 0; iterating through tiles rather
than gts; fixes in log messages
v4: Updated kerneldocs, removed unused funct, properly allocate
balloning nodes if non existent, removed inline keywords, enums for
offsets in CTB messages, less error messages, if return unused then
made functs void
v5: Removed drm_mm change, but added VF init modifications. These then
allowed to re-use ballooning functions during ggtt node fixing.
v6: Minor update - fixed some misplaced funct declarations; sent to
a different list by mistake:
https://patchwork.freedesktop.org/series/146977/#rev2
v7: Altered, rephrased, added or promoted several kerneldocs; added
_locked versions of some functs; improved lockdep tagging; altered
error handling; renamed or moved some functions; defined few macros;
prepared CTB fixups for future changes of CTB handling; renamed and
introduced enums; did many minor changes to adjust for xe-specific
coding practices
Tomasz Lis (4):
drm/xe/vf: Divide GGTT ballooning into allocation and insertion
drm/xe/vf: Shifting GGTT area post migration
drm/xe/guc: Introduce enum with offsets for context register H2Gs
drm/xe/vf: Fixup CTB send buffer messages after migration
drivers/gpu/drm/xe/abi/guc_actions_abi.h | 29 ++++
drivers/gpu/drm/xe/xe_ggtt.c | 48 +++++-
drivers/gpu/drm/xe/xe_ggtt.h | 1 +
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 195 +++++++++++++++++++---
drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 4 +
drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 2 +
drivers/gpu/drm/xe/xe_guc_ct.c | 147 ++++++++++++++++
drivers/gpu/drm/xe/xe_guc_ct.h | 2 +
drivers/gpu/drm/xe/xe_guc_submit.c | 22 +++
drivers/gpu/drm/xe/xe_map.h | 12 ++
drivers/gpu/drm/xe/xe_sriov_vf.c | 40 +++++
11 files changed, 470 insertions(+), 32 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
@ 2025-04-03 18:40 ` Tomasz Lis
2025-04-08 11:59 ` Michal Wajdeczko
2025-04-03 18:40 ` [PATCH v7 2/4] drm/xe/vf: Shifting GGTT area post migration Tomasz Lis
` (10 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Tomasz Lis @ 2025-04-03 18:40 UTC (permalink / raw)
To: intel-xe
Cc: Michał Winiarski, Michał Wajdeczko,
Piotr Piórkowski, Matthew Brost, Lucas De Marchi
The balloon nodes, which are used to fill areas of GGTT inaccessible
for a specific VF, were allocated and inserted into GGTT within one
function. To be able to re-use that insertion code during VF
migration recovery, we need to split it.
This patch separates allocation (init/fini functs) from the insertion
of balloons (balloon/deballoon functs). Locks are also moved to ensure
calls from post-migration recovery worker will not cause a deadlock.
v2: Moved declarations to proper header
v3: Rephrased description, introduced "_locked" versions of some
functs, more lockdep checks, some functions renamed, altered error
handling, added missing kerneldocs.
Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
---
drivers/gpu/drm/xe/xe_ggtt.c | 11 +--
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 102 +++++++++++++++++++++-------
drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 2 +
3 files changed, 82 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 5fcb2b4c2c13..769a8dc9be6e 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -447,14 +447,13 @@ int xe_ggtt_node_insert_balloon(struct xe_ggtt_node *node, u64 start, u64 end)
xe_tile_assert(ggtt->tile, IS_ALIGNED(start, XE_PAGE_SIZE));
xe_tile_assert(ggtt->tile, IS_ALIGNED(end, XE_PAGE_SIZE));
xe_tile_assert(ggtt->tile, !drm_mm_node_allocated(&node->base));
+ lockdep_assert_held(&ggtt->lock);
node->base.color = 0;
node->base.start = start;
node->base.size = end - start;
- mutex_lock(&ggtt->lock);
err = drm_mm_reserve_node(&ggtt->mm, &node->base);
- mutex_unlock(&ggtt->lock);
if (xe_gt_WARN(ggtt->tile->primary_gt, err,
"Failed to balloon GGTT %#llx-%#llx (%pe)\n",
@@ -477,16 +476,12 @@ void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node)
return;
if (!drm_mm_node_allocated(&node->base))
- goto free_node;
+ return;
+ lockdep_assert_held(&node->ggtt->lock);
xe_ggtt_dump_node(node->ggtt, &node->base, "remove-balloon");
- mutex_lock(&node->ggtt->lock);
drm_mm_remove_node(&node->base);
- mutex_unlock(&node->ggtt->lock);
-
-free_node:
- xe_ggtt_node_fini(node);
}
/**
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
index a439261bf4d7..c3ca33725161 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
@@ -560,35 +560,38 @@ u64 xe_gt_sriov_vf_lmem(struct xe_gt *gt)
return gt->sriov.vf.self_config.lmem_size;
}
-static struct xe_ggtt_node *
-vf_balloon_ggtt_node(struct xe_ggtt *ggtt, u64 start, u64 end)
+static int vf_init_ggtt_balloons(struct xe_gt *gt)
{
- struct xe_ggtt_node *node;
- int err;
+ struct xe_tile *tile = gt_to_tile(gt);
+ struct xe_ggtt *ggtt = tile->mem.ggtt;
- node = xe_ggtt_node_init(ggtt);
- if (IS_ERR(node))
- return node;
+ tile->sriov.vf.ggtt_balloon[0] = xe_ggtt_node_init(ggtt);
+ if (IS_ERR(tile->sriov.vf.ggtt_balloon[0]))
+ return PTR_ERR(tile->sriov.vf.ggtt_balloon[0]);
- err = xe_ggtt_node_insert_balloon(node, start, end);
- if (err) {
- xe_ggtt_node_fini(node);
- return ERR_PTR(err);
- }
+ tile->sriov.vf.ggtt_balloon[1] = xe_ggtt_node_init(ggtt);
+ if (IS_ERR(tile->sriov.vf.ggtt_balloon[1]))
+ return PTR_ERR(tile->sriov.vf.ggtt_balloon[1]);
- return node;
+ return 0;
}
-static int vf_balloon_ggtt(struct xe_gt *gt)
+/**
+ * xe_gt_sriov_vf_balloon_ggtt_locked - Insert balloon nodes to limit used GGTT address range.
+ * @gt: the &xe_gt struct instance
+ * Return: 0 on success or a negative error code on failure.
+ */
+int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt)
{
struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
struct xe_tile *tile = gt_to_tile(gt);
- struct xe_ggtt *ggtt = tile->mem.ggtt;
struct xe_device *xe = gt_to_xe(gt);
u64 start, end;
+ int err;
xe_gt_assert(gt, IS_SRIOV_VF(xe));
xe_gt_assert(gt, !xe_gt_is_media_type(gt));
+ lockdep_assert_held(&tile->mem.ggtt->lock);
if (!config->ggtt_size)
return -ENODATA;
@@ -611,33 +614,76 @@ static int vf_balloon_ggtt(struct xe_gt *gt)
start = xe_wopcm_size(xe);
end = config->ggtt_base;
if (end != start) {
- tile->sriov.vf.ggtt_balloon[0] = vf_balloon_ggtt_node(ggtt, start, end);
- if (IS_ERR(tile->sriov.vf.ggtt_balloon[0]))
- return PTR_ERR(tile->sriov.vf.ggtt_balloon[0]);
+ err = xe_ggtt_node_insert_balloon(tile->sriov.vf.ggtt_balloon[0], start, end);
+ if (err)
+ return err;
}
start = config->ggtt_base + config->ggtt_size;
end = GUC_GGTT_TOP;
if (end != start) {
- tile->sriov.vf.ggtt_balloon[1] = vf_balloon_ggtt_node(ggtt, start, end);
- if (IS_ERR(tile->sriov.vf.ggtt_balloon[1])) {
+ err = xe_ggtt_node_insert_balloon(tile->sriov.vf.ggtt_balloon[1], start, end);
+ if (err) {
xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[0]);
- return PTR_ERR(tile->sriov.vf.ggtt_balloon[1]);
+ return err;
}
}
return 0;
}
-static void deballoon_ggtt(struct drm_device *drm, void *arg)
+static int vf_balloon_ggtt(struct xe_gt *gt)
{
- struct xe_tile *tile = arg;
+ struct xe_ggtt *ggtt = gt_to_tile(gt)->mem.ggtt;
+ int err;
+
+ mutex_lock(&ggtt->lock);
+ err = xe_gt_sriov_vf_balloon_ggtt_locked(gt);
+ mutex_unlock(&ggtt->lock);
+
+ return err;
+}
+
+/**
+ * xe_gt_sriov_vf_deballoon_ggtt_locked - Remove balloon nodes which limited used address renge.
+ * @gt: the &xe_gt struct instance
+ */
+void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt)
+{
+ struct xe_tile *tile = gt_to_tile(gt);
xe_tile_assert(tile, IS_SRIOV_VF(tile_to_xe(tile)));
+ lockdep_assert_held(&tile->mem.ggtt->lock);
+
xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[1]);
xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[0]);
}
+static void vf_deballoon_ggtt(struct xe_gt *gt)
+{
+ struct xe_tile *tile = gt_to_tile(gt);
+
+ mutex_lock(&tile->mem.ggtt->lock);
+ xe_gt_sriov_vf_deballoon_ggtt_locked(gt);
+ mutex_unlock(&tile->mem.ggtt->lock);
+}
+
+static void vf_balloon_fini(struct xe_gt *gt)
+{
+ struct xe_tile *tile = gt_to_tile(gt);
+
+ xe_ggtt_node_fini(tile->sriov.vf.ggtt_balloon[1]);
+ xe_ggtt_node_fini(tile->sriov.vf.ggtt_balloon[0]);
+}
+
+static void deballoon_and_fini_ggtt(struct drm_device *drm, void *arg)
+{
+ struct xe_tile *tile = arg;
+
+ vf_deballoon_ggtt(tile->primary_gt);
+ vf_balloon_fini(tile->primary_gt);
+}
+
/**
* xe_gt_sriov_vf_prepare_ggtt - Prepare a VF's GGTT configuration.
* @gt: the &xe_gt
@@ -655,11 +701,17 @@ int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt)
if (xe_gt_is_media_type(gt))
return 0;
- err = vf_balloon_ggtt(gt);
+ err = vf_init_ggtt_balloons(gt);
if (err)
return err;
- return drmm_add_action_or_reset(&xe->drm, deballoon_ggtt, tile);
+ err = vf_balloon_ggtt(gt);
+ if (err) {
+ vf_balloon_fini(gt);
+ return err;
+ }
+
+ return drmm_add_action_or_reset(&xe->drm, deballoon_and_fini_ggtt, tile);
}
static int relay_action_handshake(struct xe_gt *gt, u32 *major, u32 *minor)
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
index ba6c5d74e326..d717deb8af91 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
@@ -18,6 +18,8 @@ int xe_gt_sriov_vf_query_config(struct xe_gt *gt);
int xe_gt_sriov_vf_connect(struct xe_gt *gt);
int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt);
+int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt);
+void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt);
int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
--
2.25.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v7 2/4] drm/xe/vf: Shifting GGTT area post migration
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
2025-04-03 18:40 ` [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion Tomasz Lis
@ 2025-04-03 18:40 ` Tomasz Lis
2025-04-08 13:23 ` Michal Wajdeczko
2025-04-03 18:40 ` [PATCH v7 3/4] drm/xe/guc: Introduce enum with offsets for context register H2Gs Tomasz Lis
` (9 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Tomasz Lis @ 2025-04-03 18:40 UTC (permalink / raw)
To: intel-xe
Cc: Michał Winiarski, Michał Wajdeczko,
Piotr Piórkowski, Matthew Brost, Lucas De Marchi
We have only one GGTT for all IOV functions, with each VF having assigned
a range of addresses for its use. After migration, a VF can receive a
different range of addresses than it had initially.
This implements shifting GGTT addresses within drm_mm nodes, so that
VMAs stay valid after migration. This will make the driver use new
addresses when accessing GGTT from the moment the shifting ends.
By taking the ggtt->lock for the period of VMA fixups, this change
also adds constraint on that mutex. Any locks used during the recovery
cannot ever wait for hardware response - because after migration,
the hardware will not do anything until fixups are finished.
v2: Moved some functs to xe_ggtt.c; moved shift computation to just
after querying; improved documentation; switched some warns to asserts;
skipping fixups when GGTT shift eq 0; iterating through tiles (Michal)
v3: Updated kerneldocs, removed unused funct, properly allocate
balloning nodes if non existent
v4: Re-used ballooning functions from VF init, used bool in place of
standard error codes
v5: Renamed one function
v6: Subject tag change, several kerneldocs updated, some functions
renamed, some moved, added several asserts, shuffled declarations
of variables, revealed more detail in high level functions
Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
---
drivers/gpu/drm/xe/xe_ggtt.c | 39 ++++++++++
drivers/gpu/drm/xe/xe_ggtt.h | 1 +
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 93 +++++++++++++++++++++++
drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 2 +
drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 2 +
drivers/gpu/drm/xe/xe_sriov_vf.c | 22 ++++++
6 files changed, 159 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 769a8dc9be6e..ab6717671542 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -484,6 +484,45 @@ void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node)
drm_mm_remove_node(&node->base);
}
+/**
+ * xe_ggtt_shift_nodes - Shift GGTT nodes to adjust for a change in usable address range.
+ * @ggtt: the &xe_ggtt struct instance
+ * @shift: change to the location of area provisioned for current VF
+ *
+ * This function moves all nodes from the GGTT VM, to a temp list. These nodes are expected
+ * to represent allocations in range formerly assigned to current VF, before the range changed.
+ * When the GGTT VM is completely clear of any nodes, they are re-added with shifted offsets.
+ *
+ * The function has no ability of failing - because it shifts existing nodes, without
+ * any additional processing. If the nodes were successfully existing at the old address,
+ * they will do the same at the new one. A fail inside this function would indicate that
+ * the list of nodes was either already damaged, or that the shift brings the address ramge
+ * outside of valid bounds. Both cases justify an assert rather than error code.
+ */
+void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, s64 shift)
+{
+ struct drm_mm_node *node, *tmpn;
+ LIST_HEAD(temp_list_head);
+ int err;
+
+ lockdep_assert_held(&ggtt->lock);
+
+ drm_mm_for_each_node_safe(node, tmpn, &ggtt->mm) {
+ drm_mm_remove_node(node);
+ list_add(&node->node_list, &temp_list_head);
+ }
+
+ list_for_each_entry_safe(node, tmpn, &temp_list_head, node_list) {
+ xe_tile_assert(ggtt->tile, shift >= 0 || node->start >= (u64)(-shift));
+ xe_tile_assert(ggtt->tile, shift <= 0 || node->start + node->size <
+ node->start + node->size + (u64)shift);
+ list_del(&node->node_list);
+ node->start += shift;
+ err = drm_mm_reserve_node(&ggtt->mm, node);
+ xe_tile_assert(ggtt->tile, !err);
+ }
+}
+
/**
* xe_ggtt_node_insert_locked - Locked version to insert a &xe_ggtt_node into the GGTT
* @node: the &xe_ggtt_node to be inserted
diff --git a/drivers/gpu/drm/xe/xe_ggtt.h b/drivers/gpu/drm/xe/xe_ggtt.h
index 27e7d67de004..eb39023c4e1b 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.h
+++ b/drivers/gpu/drm/xe/xe_ggtt.h
@@ -18,6 +18,7 @@ void xe_ggtt_node_fini(struct xe_ggtt_node *node);
int xe_ggtt_node_insert_balloon(struct xe_ggtt_node *node,
u64 start, u64 size);
void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node);
+void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, s64 shift);
int xe_ggtt_node_insert(struct xe_ggtt_node *node, u32 size, u32 align);
int xe_ggtt_node_insert_locked(struct xe_ggtt_node *node,
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
index c3ca33725161..50b0c3b7be8c 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
@@ -415,12 +415,20 @@ static int vf_get_ggtt_info(struct xe_gt *gt)
xe_gt_sriov_dbg_verbose(gt, "GGTT %#llx-%#llx = %lluK\n",
start, start + size - 1, size / SZ_1K);
+ config->ggtt_shift = start - (s64)config->ggtt_base;
config->ggtt_base = start;
config->ggtt_size = size;
return config->ggtt_size ? 0 : -ENODATA;
}
+s32 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt)
+{
+ struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
+
+ return config->ggtt_shift;
+}
+
static int vf_get_lmem_info(struct xe_gt *gt)
{
struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
@@ -809,6 +817,91 @@ int xe_gt_sriov_vf_connect(struct xe_gt *gt)
return err;
}
+/**
+ * DOC: GGTT nodes shifting during VF post-migration recovery
+ *
+ * The first fixup applied to the VF KMD structures as part of post-migration
+ * recovery is shifting nodes within xe_ggtt instance. The nodes are moved
+ * from range previously assigned to this VF, into newly provisioned area.
+ * The chanes include balloons, which are resized accordingly.
+ *
+ * The balloon nodes are there to eliminate unavailable ranges from use: one
+ * reserves the GGTT area below the range for current VF, and another one
+ * reserves area above.
+ *
+ * Below is a GGTT layout of example VF, with a certain address range assigned to
+ * said VF, and inaccessible areas above and below:
+ *
+ * 0 4GiB
+ * |<--------------------------- Total GGTT size ----------------------------->|
+ * WOPCM GUC_TOP
+ * |<-------------- Area mappable by xe_ggtt instance ---------------->|
+ *
+ * +---+---------------------------------+----------+----------------------+---+
+ * |\\\|/////////////////////////////////| VF mem |//////////////////////|\\\|
+ * +---+---------------------------------+----------+----------------------+---+
+ *
+ * Hardware enforced access rules before migration:
+ *
+ * |<------- inaccessible for VF ------->|<VF owned>|<-- inaccessible for VF ->|
+ *
+ * GGTT nodes used for tracking allocations:
+ *
+ * |<----------- balloon ------------>|<- nodes->|<----- balloon ------>|
+ *
+ * After the migration, GGTT area assigned to the VF might have shifted, either
+ * to lower or to higher address. But we expect the total size and extra areas to
+ * be identical, as migration can only happen between matching platforms.
+ * Below is an example of GGTT layout of the VF after migration. Content of the
+ * GGTT for VF has been moved to a new area, and we receive its address from GuC:
+ *
+ * +---+----------------------+----------+---------------------------------+---+
+ * |\\\|//////////////////////| VF mem |/////////////////////////////////|\\\|
+ * +---+----------------------+----------+---------------------------------+---+
+ *
+ * Hardware enforced access rules after migration:
+ *
+ * |<- inaccessible for VF -->|<VF owned>|<------- inaccessible for VF ------->|
+ *
+ * So the VF has a new slice of GGTT assigned, and during migration process, the
+ * memory content was copied to that new area. But the drm_mm nodes within xe kmd
+ * are still tracking allocations using the old addresses. The nodes within VF
+ * owned area have to be shifted, and balloon nodes need to be resized to
+ * properly mask out areas not owned by the VF.
+ *
+ * Fixed drm_mm nodes used for tracking allocations:
+ *
+ * |<------ balloon ------>|<- nodes->|<----------- balloon ----------->|
+ *
+ * Due to use of GPU profiles, we do not expect the old and new GGTT ares to
+ * overlap; but our node shifting will fix addresses properly regardless.
+ */
+
+/**
+ * xe_gt_sriov_vf_fixup_ggtt_nodes - Shift GGTT allocations to match assigned range.
+ * @gt: the &xe_gt struct instance
+ * @ggtt_shift: the shift value
+ *
+ * Since Global GTT is not virtualized, each VF has an assigned range
+ * within the global space. This range might have changed during migration,
+ * which requires all memory addresses pointing to GGTT to be shifted.
+ */
+void xe_gt_sriov_vf_fixup_ggtt_nodes(struct xe_gt *gt, s64 ggtt_shift)
+{
+ struct xe_tile *tile = gt_to_tile(gt);
+ struct xe_ggtt *ggtt = tile->mem.ggtt;
+
+ xe_gt_assert(gt, !xe_gt_is_media_type(gt));
+
+ mutex_lock(&ggtt->lock);
+ if (ggtt_shift) {
+ xe_gt_sriov_vf_deballoon_ggtt_locked(gt);
+ xe_ggtt_shift_nodes(ggtt, ggtt_shift);
+ xe_gt_sriov_vf_balloon_ggtt_locked(gt);
+ }
+ mutex_unlock(&ggtt->lock);
+}
+
/**
* xe_gt_sriov_vf_migrated_event_handler - Start a VF migration recovery,
* or just mark that a GuC is ready for it.
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
index d717deb8af91..904a600063e6 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
@@ -20,6 +20,8 @@ int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt);
int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt);
void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt);
+s32 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt);
+void xe_gt_sriov_vf_fixup_ggtt_nodes(struct xe_gt *gt, s64 ggtt_shift);
int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
index a57f13b5afcd..5ccbdf8d08b6 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
@@ -40,6 +40,8 @@ struct xe_gt_sriov_vf_selfconfig {
u64 ggtt_base;
/** @ggtt_size: assigned size of the GGTT region. */
u64 ggtt_size;
+ /** @ggtt_shift: difference in ggtt_base on last migration */
+ s64 ggtt_shift;
/** @lmem_size: assigned size of the LMEM. */
u64 lmem_size;
/** @num_ctxs: assigned number of GuC submission context IDs. */
diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c
index c1275e64aa9c..e70f1ceabbb3 100644
--- a/drivers/gpu/drm/xe/xe_sriov_vf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_vf.c
@@ -7,6 +7,7 @@
#include "xe_assert.h"
#include "xe_device.h"
+#include "xe_gt.h"
#include "xe_gt_sriov_printk.h"
#include "xe_gt_sriov_vf.h"
#include "xe_pm.h"
@@ -170,6 +171,25 @@ static bool vf_post_migration_imminent(struct xe_device *xe)
work_pending(&xe->sriov.vf.migration.worker);
}
+static bool vf_post_migration_fixup_ggtt_nodes(struct xe_device *xe)
+{
+ bool need_fixups = false;
+ struct xe_tile *tile;
+ unsigned int id;
+
+ for_each_tile(tile, xe, id) {
+ struct xe_gt *gt = tile->primary_gt;
+ s64 shift;
+
+ shift = xe_gt_sriov_vf_ggtt_shift(gt);
+ if (shift) {
+ need_fixups = true;
+ xe_gt_sriov_vf_fixup_ggtt_nodes(gt, shift);
+ }
+ }
+ return need_fixups;
+}
+
/*
* Notify all GuCs about resource fixups apply finished.
*/
@@ -191,6 +211,7 @@ static void vf_post_migration_notify_resfix_done(struct xe_device *xe)
static void vf_post_migration_recovery(struct xe_device *xe)
{
+ bool need_fixups;
int err;
drm_dbg(&xe->drm, "migration recovery in progress\n");
@@ -201,6 +222,7 @@ static void vf_post_migration_recovery(struct xe_device *xe)
if (unlikely(err))
goto fail;
+ need_fixups = vf_post_migration_fixup_ggtt_nodes(xe);
/* FIXME: add the recovery steps */
vf_post_migration_notify_resfix_done(xe);
xe_pm_runtime_put(xe);
--
2.25.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v7 3/4] drm/xe/guc: Introduce enum with offsets for context register H2Gs
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
2025-04-03 18:40 ` [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion Tomasz Lis
2025-04-03 18:40 ` [PATCH v7 2/4] drm/xe/vf: Shifting GGTT area post migration Tomasz Lis
@ 2025-04-03 18:40 ` Tomasz Lis
2025-04-08 13:34 ` Michal Wajdeczko
2025-04-03 18:40 ` [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration Tomasz Lis
` (8 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Tomasz Lis @ 2025-04-03 18:40 UTC (permalink / raw)
To: intel-xe
Cc: Michał Winiarski, Michał Wajdeczko,
Piotr Piórkowski, Matthew Brost, Lucas De Marchi
Some GuC messages are constructed with incrementing dword counter
rather than referencing specific DWORDs, as described in GuC interface
specification.
This change introduces the definitions of DWORD numbers for parameters
which will need to be referenced in a CTB parser to be added in a
following patch. To ensure correctness of these DWORDs, verification
in form of asserts was added to the message construction code.
v2: Renamed enum members, added ones for single context registration,
modified asserts to check values rather than indexes.
Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
Suggested-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
drivers/gpu/drm/xe/abi/guc_actions_abi.h | 29 ++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_submit.c | 22 ++++++++++++++++++
2 files changed, 51 insertions(+)
diff --git a/drivers/gpu/drm/xe/abi/guc_actions_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
index 448afb86e05c..64c71526356e 100644
--- a/drivers/gpu/drm/xe/abi/guc_actions_abi.h
+++ b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
@@ -161,6 +161,35 @@ enum xe_guc_preempt_options {
XE_GUC_PREEMPT_OPTION_DROP_SUBMIT_Q = 0x8,
};
+enum xe_guc_register_context_param_offsets {
+ XE_GUC_REGISTER_CONTEXT_DATA_0_MBZ = 0,
+ XE_GUC_REGISTER_CONTEXT_DATA_1_FLAGS,
+ XE_GUC_REGISTER_CONTEXT_DATA_2_CONTEXT_INDEX,
+ XE_GUC_REGISTER_CONTEXT_DATA_3_ENGINE_CLASS,
+ XE_GUC_REGISTER_CONTEXT_DATA_4_ENGINE_SUBMIT_MASK,
+ XE_GUC_REGISTER_CONTEXT_DATA_5_WQ_DESC_ADDR_LOWER,
+ XE_GUC_REGISTER_CONTEXT_DATA_6_WQ_DESC_ADDR_UPPER,
+ XE_GUC_REGISTER_CONTEXT_DATA_7_WQ_BUF_BASE_LOWER,
+ XE_GUC_REGISTER_CONTEXT_DATA_8_WQ_BUF_BASE_UPPER,
+ XE_GUC_REGISTER_CONTEXT_DATA_9_WQ_BUF_SIZE,
+ XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR,
+};
+
+enum xe_guc_register_context_multi_lrc_param_offsets {
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_0_MBZ = 0,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_1_FLAGS,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_2_PARENT_CONTEXT,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_3_ENGINE_CLASS,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_4_ENGINE_SUBMIT_MASK,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_6_WQ_DESC_ADDR_UPPER,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_8_WQ_BUF_BASE_UPPER,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_9_WQ_BUF_SIZE,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR,
+};
+
enum xe_guc_report_status {
XE_GUC_REPORT_STATUS_UNKNOWN = 0x0,
XE_GUC_REPORT_STATUS_ACKED = 0x1,
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 31bc2022bfc2..63ef06d3a28f 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -485,6 +485,18 @@ static void __register_mlrc_exec_queue(struct xe_guc *guc,
action[len++] = upper_32_bits(xe_lrc_descriptor(lrc));
}
+ xe_gt_assert(guc_to_gt(guc),
+ action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER]
+ == info->wq_desc_lo);
+ xe_gt_assert(guc_to_gt(guc),
+ action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER]
+ == info->wq_base_lo);
+ xe_gt_assert(guc_to_gt(guc),
+ action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS]
+ == q->width);
+ xe_gt_assert(guc_to_gt(guc),
+ action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR]
+ == info->hwlrca_lo);
xe_gt_assert(guc_to_gt(guc), len <= MAX_MLRC_REG_SIZE);
#undef MAX_MLRC_REG_SIZE
@@ -509,6 +521,16 @@ static void __register_exec_queue(struct xe_guc *guc,
info->hwlrca_hi,
};
+ xe_gt_assert(guc_to_gt(guc),
+ action[XE_GUC_REGISTER_CONTEXT_DATA_5_WQ_DESC_ADDR_LOWER]
+ == info->wq_desc_lo);
+ xe_gt_assert(guc_to_gt(guc),
+ action[XE_GUC_REGISTER_CONTEXT_DATA_7_WQ_BUF_BASE_LOWER]
+ == info->wq_base_lo);
+ xe_gt_assert(guc_to_gt(guc),
+ action[XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR]
+ == info->hwlrca_lo);
+
xe_guc_ct_send(&guc->ct, action, ARRAY_SIZE(action), 0, 0);
}
--
2.25.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (2 preceding siblings ...)
2025-04-03 18:40 ` [PATCH v7 3/4] drm/xe/guc: Introduce enum with offsets for context register H2Gs Tomasz Lis
@ 2025-04-03 18:40 ` Tomasz Lis
2025-04-08 14:23 ` Michal Wajdeczko
2025-04-04 0:22 ` ✓ CI.Patch_applied: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6) Patchwork
` (7 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Tomasz Lis @ 2025-04-03 18:40 UTC (permalink / raw)
To: intel-xe
Cc: Michał Winiarski, Michał Wajdeczko,
Piotr Piórkowski, Matthew Brost, Lucas De Marchi
During post-migration recovery of a VF, it is necessary to update
GGTT references included in messages which are going to be sent
to GuC. GuC will start consuming messages after VF KMD will inform
it about fixups being done; before that, the VF KMD is expected
to update any H2G messages which are already in send buffer but
were not consumed by GuC.
Only a small subset of messages allowed for VFs have GGTT references
in them. This patch adds the functionality to parse the CTB send
ring buffer and shift addresses contained within.
While fixing the CTB content, ct->lock is not taken. This means
the only barrier taken remains GGTT address lock - which is ok,
because only requests with GGTT addresses matter, but it also means
tail changes can happen during the CTB fixups execution (which may
be ignored as any new messages will not have anything to fix).
The GGTT address locking will be introduced in a future series.
v2: removed storing shift as that's now done in VMA nodes patch;
macros to inlines; warns to asserts; log messages fixes (Michal)
v3: removed inline keywords, enums for offsets in CTB messages,
less error messages, if return unused then made functs void (Michal)
v4: update the cached head before starting fixups
v5: removed/updated comments, wrapped lines, converted assert into
error, enums for offsets to separate patch, reused xe_map_rd
v6: define xe_map_*_array() macros, support CTB wrap which divides
a message, updated comments, moved one function to an earlier patch
Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
---
drivers/gpu/drm/xe/xe_guc_ct.c | 147 +++++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_guc_ct.h | 2 +
drivers/gpu/drm/xe/xe_map.h | 12 +++
drivers/gpu/drm/xe/xe_sriov_vf.c | 18 ++++
4 files changed, 179 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index 686fe664c20d..add2d9b12345 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -84,6 +84,8 @@ struct g2h_fence {
bool done;
};
+#define make_u64(hi, lo) ((u64)((u64)(u32)(hi) << 32 | (u32)(lo)))
+
static void g2h_fence_init(struct g2h_fence *g2h_fence, u32 *response_buffer)
{
g2h_fence->response_buffer = response_buffer;
@@ -1622,6 +1624,151 @@ static void g2h_worker_func(struct work_struct *w)
receive_g2h(ct);
}
+static void xe_ring_map_fixup_u64(struct xe_device *xe, struct iosys_map *cmds,
+ u32 size, u32 head, u32 pos, s64 shift)
+{
+ u32 hi, lo;
+ u64 offset;
+
+ lo = xe_map_rd_array_u32(xe, cmds, (head + pos) % size);
+ hi = xe_map_rd_array_u32(xe, cmds, (head + pos + 1) % size);
+ offset = make_u64(hi, lo);
+ offset += shift;
+ lo = lower_32_bits(offset);
+ hi = upper_32_bits(offset);
+ xe_map_wr_array_u32(xe, cmds, (head + pos) % size, lo);
+ xe_map_wr_array_u32(xe, cmds, (head + pos + 1) % size, hi);
+}
+
+/*
+ * Shift any GGTT addresses within a single message left within CTB from
+ * before post-migration recovery.
+ * @ct: pointer to CT struct of the target GuC
+ * @cmds: iomap buffer containing CT messages
+ * @head: start of the target message within the buffer
+ * @len: length of the target message
+ * @size: size of the commands buffer
+ * @shift: the address shift to be added to each GGTT reference
+ */
+static void ct_update_addresses_in_message(struct xe_guc_ct *ct,
+ struct iosys_map *cmds, u32 head,
+ u32 len, u32 size, s64 shift)
+{
+ struct xe_device *xe = ct_to_xe(ct);
+ u32 action, i, n;
+ u32 msg[1];
+
+ xe_map_memcpy_from(xe, msg, cmds, head * sizeof(u32),
+ 1 * sizeof(u32));
+ action = FIELD_GET(GUC_HXG_REQUEST_MSG_0_ACTION, msg[0]);
+ switch (action) {
+ case XE_GUC_ACTION_REGISTER_CONTEXT:
+ case XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC:
+ xe_ring_map_fixup_u64(xe, cmds, size, head,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER,
+ shift);
+ xe_ring_map_fixup_u64(xe, cmds, size, head,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER,
+ shift);
+ if (action == XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC) {
+ n = xe_map_rd_array_u32(xe, cmds, head +
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS);
+ for (i = 0; i < n; i++)
+ xe_ring_map_fixup_u64(xe, cmds, size, head,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR
+ + 2 * i, shift);
+ } else {
+ xe_ring_map_fixup_u64(xe, cmds, size, head,
+ XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR, shift);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+static int ct_update_addresses_in_buffer(struct xe_guc_ct *ct,
+ struct guc_ctb *h2g,
+ s64 shift, u32 *mhead, s32 avail)
+{
+ struct xe_device *xe = ct_to_xe(ct);
+ u32 head = *mhead;
+ u32 size = h2g->info.size;
+ u32 msg[1];
+ u32 len;
+
+ /* Read header */
+ xe_map_memcpy_from(xe, msg, &h2g->cmds, sizeof(u32) * head,
+ sizeof(u32));
+ len = FIELD_GET(GUC_CTB_MSG_0_NUM_DWORDS, msg[0]) + GUC_CTB_MSG_MIN_LEN;
+
+ if (unlikely(len > (u32)avail)) {
+ xe_gt_err(ct_to_gt(ct), "H2G channel broken on read, avail=%d, len=%d, fixups skipped\n",
+ avail, len);
+ return 0;
+ }
+
+ head = (head + 1) % size;
+ ct_update_addresses_in_message(ct, &h2g->cmds, head, len - 1, size, shift);
+ *mhead = (head + len - 1) % size;
+
+ return avail - len;
+}
+
+/**
+ * xe_guc_ct_fixup_messages_with_ggtt - Fixup any pending H2G CTB messages
+ * @ct: pointer to CT struct of the target GuC
+ * @ggtt_shift: shift to be added to all GGTT addresses within the CTB
+ *
+ * Messages in guc-to-host CTB are owned by GuC and any fixups in them
+ * are made by GuC. But content of the host-to-guc CTB is owned by the
+ * KMD, so fixups to GGTT references in any pending messages need to be
+ * applied here.
+ * This function updates GGTT offsets in payloads of pending H2G CTB
+ * messages (messages which were not consumed by GuC before the VF got
+ * paused).
+ */
+void xe_guc_ct_fixup_messages_with_ggtt(struct xe_guc_ct *ct, s64 ggtt_shift)
+{
+ struct xe_guc *guc = ct_to_guc(ct);
+ struct xe_gt *gt = guc_to_gt(guc);
+ struct guc_ctb *h2g = &ct->ctbs.h2g;
+ u32 head, tail, size;
+ s32 avail;
+
+ if (unlikely(h2g->info.broken))
+ return;
+
+ h2g->info.head = desc_read(ct_to_xe(ct), h2g, head);
+ head = h2g->info.head;
+ tail = READ_ONCE(h2g->info.tail);
+ size = h2g->info.size;
+
+ if (unlikely(head > size))
+ goto corrupted;
+
+ if (unlikely(tail >= size))
+ goto corrupted;
+
+ avail = tail - head;
+
+ /* beware of buffer wrap case */
+ if (unlikely(avail < 0))
+ avail += size;
+ xe_gt_dbg(gt, "available %d (%u:%u:%u)\n", avail, head, tail, size);
+ xe_gt_assert(gt, avail >= 0);
+
+ while (avail > 0)
+ avail = ct_update_addresses_in_buffer(ct, h2g, ggtt_shift, &head, avail);
+
+ return;
+
+corrupted:
+ xe_gt_err(gt, "Corrupted H2G descriptor head=%u tail=%u size=%u, fixups not applied\n",
+ head, tail, size);
+ h2g->info.broken = true;
+}
+
static struct xe_guc_ct_snapshot *guc_ct_snapshot_alloc(struct xe_guc_ct *ct, bool atomic,
bool want_ctb)
{
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.h b/drivers/gpu/drm/xe/xe_guc_ct.h
index 82c4ae458dda..5649bda82823 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.h
+++ b/drivers/gpu/drm/xe/xe_guc_ct.h
@@ -22,6 +22,8 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot, struct drm_pr
void xe_guc_ct_snapshot_free(struct xe_guc_ct_snapshot *snapshot);
void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool want_ctb);
+void xe_guc_ct_fixup_messages_with_ggtt(struct xe_guc_ct *ct, s64 ggtt_shift);
+
static inline bool xe_guc_ct_enabled(struct xe_guc_ct *ct)
{
return ct->state == XE_GUC_CT_STATE_ENABLED;
diff --git a/drivers/gpu/drm/xe/xe_map.h b/drivers/gpu/drm/xe/xe_map.h
index f62e0c8b67ab..db98c8fb121f 100644
--- a/drivers/gpu/drm/xe/xe_map.h
+++ b/drivers/gpu/drm/xe/xe_map.h
@@ -78,6 +78,18 @@ static inline void xe_map_write32(struct xe_device *xe, struct iosys_map *map,
iosys_map_wr(map__, offset__, type__, val__); \
})
+#define xe_map_rd_array(xe__, map__, index__, type__) \
+ xe_map_rd(xe__, map__, (index__) * sizeof(type__), type__)
+
+#define xe_map_wr_array(xe__, map__, index__, type__, val__) \
+ xe_map_wr(xe__, map__, (index__) * sizeof(type__), type__, val__)
+
+#define xe_map_rd_array_u32(xe__, map__, index__) \
+ xe_map_rd_array(xe__, map__, index__, u32)
+
+#define xe_map_wr_array_u32(xe__, map__, index__, val__) \
+ xe_map_wr_array(xe__, map__, index__, u32, val__)
+
#define xe_map_rd_field(xe__, map__, struct_offset__, struct_type__, field__) ({ \
struct xe_device *__xe = xe__; \
xe_device_assert_mem_access(__xe); \
diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c
index e70f1ceabbb3..2674fa948fda 100644
--- a/drivers/gpu/drm/xe/xe_sriov_vf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_vf.c
@@ -10,6 +10,7 @@
#include "xe_gt.h"
#include "xe_gt_sriov_printk.h"
#include "xe_gt_sriov_vf.h"
+#include "xe_guc_ct.h"
#include "xe_pm.h"
#include "xe_sriov.h"
#include "xe_sriov_printk.h"
@@ -158,6 +159,20 @@ static int vf_post_migration_requery_guc(struct xe_device *xe)
return ret;
}
+static void vf_post_migration_fixup_ctb(struct xe_device *xe)
+{
+ struct xe_gt *gt;
+ unsigned int id;
+
+ xe_assert(xe, IS_SRIOV_VF(xe));
+
+ for_each_gt(gt, xe, id) {
+ s32 shift = xe_gt_sriov_vf_ggtt_shift(gt);
+
+ xe_guc_ct_fixup_messages_with_ggtt(>->uc.guc.ct, shift);
+ }
+}
+
/*
* vf_post_migration_imminent - Check if post-restore recovery is coming.
* @xe: the &xe_device struct instance
@@ -224,6 +239,9 @@ static void vf_post_migration_recovery(struct xe_device *xe)
need_fixups = vf_post_migration_fixup_ggtt_nodes(xe);
/* FIXME: add the recovery steps */
+ if (need_fixups)
+ vf_post_migration_fixup_ctb(xe);
+
vf_post_migration_notify_resfix_done(xe);
xe_pm_runtime_put(xe);
drm_notice(&xe->drm, "migration recovery ended\n");
--
2.25.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* ✓ CI.Patch_applied: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (3 preceding siblings ...)
2025-04-03 18:40 ` [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration Tomasz Lis
@ 2025-04-04 0:22 ` Patchwork
2025-04-04 0:23 ` ✗ CI.checkpatch: warning " Patchwork
` (6 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 0:22 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
State : success
== Summary ==
=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: bc18da45d48d drm-tip: 2025y-04m-03d-16h-39m-16s UTC integration manifest
=== git am output follows ===
Applying: drm/xe/vf: Divide GGTT ballooning into allocation and insertion
Applying: drm/xe/vf: Shifting GGTT area post migration
Applying: drm/xe/guc: Introduce enum with offsets for context register H2Gs
Applying: drm/xe/vf: Fixup CTB send buffer messages after migration
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ CI.checkpatch: warning for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (4 preceding siblings ...)
2025-04-04 0:22 ` ✓ CI.Patch_applied: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6) Patchwork
@ 2025-04-04 0:23 ` Patchwork
2025-04-04 0:24 ` ✓ CI.KUnit: success " Patchwork
` (5 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 0:23 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
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
99e5a866b5e13f134e606a3e29d9508d97826fb3
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 1e46274a35fd7f0c16ec2dfb105f54b8d2962ec7
Author: Tomasz Lis <tomasz.lis@intel.com>
Date: Thu Apr 3 20:40:55 2025 +0200
drm/xe/vf: Fixup CTB send buffer messages after migration
During post-migration recovery of a VF, it is necessary to update
GGTT references included in messages which are going to be sent
to GuC. GuC will start consuming messages after VF KMD will inform
it about fixups being done; before that, the VF KMD is expected
to update any H2G messages which are already in send buffer but
were not consumed by GuC.
Only a small subset of messages allowed for VFs have GGTT references
in them. This patch adds the functionality to parse the CTB send
ring buffer and shift addresses contained within.
While fixing the CTB content, ct->lock is not taken. This means
the only barrier taken remains GGTT address lock - which is ok,
because only requests with GGTT addresses matter, but it also means
tail changes can happen during the CTB fixups execution (which may
be ignored as any new messages will not have anything to fix).
The GGTT address locking will be introduced in a future series.
v2: removed storing shift as that's now done in VMA nodes patch;
macros to inlines; warns to asserts; log messages fixes (Michal)
v3: removed inline keywords, enums for offsets in CTB messages,
less error messages, if return unused then made functs void (Michal)
v4: update the cached head before starting fixups
v5: removed/updated comments, wrapped lines, converted assert into
error, enums for offsets to separate patch, reused xe_map_rd
v6: define xe_map_*_array() macros, support CTB wrap which divides
a message, updated comments, moved one function to an earlier patch
Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
+ /mt/dim checkpatch bc18da45d48d337b92a7ff9546ba61da32b3b586 drm-intel
fc26eb54a73e drm/xe/vf: Divide GGTT ballooning into allocation and insertion
2b86a2b7cec8 drm/xe/vf: Shifting GGTT area post migration
cb701cf3cb4c drm/xe/guc: Introduce enum with offsets for context register H2Gs
1e46274a35fd drm/xe/vf: Fixup CTB send buffer messages after migration
-:95: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#95: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:1668:
+ xe_ring_map_fixup_u64(xe, cmds, size, head,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER,
-:98: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#98: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:1671:
+ xe_ring_map_fixup_u64(xe, cmds, size, head,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER,
-:105: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#105: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:1678:
+ xe_ring_map_fixup_u64(xe, cmds, size, head,
+ XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR
-:195: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#195: FILE: drivers/gpu/drm/xe/xe_guc_ct.c:1768:
+ xe_gt_err(gt, "Corrupted H2G descriptor head=%u tail=%u size=%u, fixups not applied\n",
+ head, tail, size);
total: 0 errors, 0 warnings, 4 checks, 221 lines checked
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.KUnit: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (5 preceding siblings ...)
2025-04-04 0:23 ` ✗ CI.checkpatch: warning " Patchwork
@ 2025-04-04 0:24 ` Patchwork
2025-04-04 0:40 ` ✓ CI.Build: " Patchwork
` (4 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 0:24 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[00:23:12] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[00:23:16] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[00:23:42] Starting KUnit Kernel (1/1)...
[00:23:42] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[00:23:42] ================== guc_buf (11 subtests) ===================
[00:23:42] [PASSED] test_smallest
[00:23:42] [PASSED] test_largest
[00:23:42] [PASSED] test_granular
[00:23:42] [PASSED] test_unique
[00:23:42] [PASSED] test_overlap
[00:23:42] [PASSED] test_reusable
[00:23:42] [PASSED] test_too_big
[00:23:42] [PASSED] test_flush
[00:23:42] [PASSED] test_lookup
[00:23:42] [PASSED] test_data
[00:23:42] [PASSED] test_class
[00:23:42] ===================== [PASSED] guc_buf =====================
[00:23:42] =================== guc_dbm (7 subtests) ===================
[00:23:42] [PASSED] test_empty
[00:23:42] [PASSED] test_default
[00:23:42] ======================== test_size ========================
[00:23:42] [PASSED] 4
[00:23:42] [PASSED] 8
[00:23:42] [PASSED] 32
[00:23:42] [PASSED] 256
[00:23:42] ==================== [PASSED] test_size ====================
[00:23:42] ======================= test_reuse ========================
[00:23:42] [PASSED] 4
[00:23:42] [PASSED] 8
[00:23:42] [PASSED] 32
[00:23:42] [PASSED] 256
[00:23:42] =================== [PASSED] test_reuse ====================
[00:23:42] =================== test_range_overlap ====================
[00:23:42] [PASSED] 4
[00:23:42] [PASSED] 8
[00:23:42] [PASSED] 32
[00:23:42] [PASSED] 256
[00:23:42] =============== [PASSED] test_range_overlap ================
[00:23:42] =================== test_range_compact ====================
[00:23:42] [PASSED] 4
[00:23:42] [PASSED] 8
[00:23:42] [PASSED] 32
[00:23:42] [PASSED] 256
[00:23:42] =============== [PASSED] test_range_compact ================
[00:23:42] ==================== test_range_spare =====================
[00:23:42] [PASSED] 4
[00:23:42] [PASSED] 8
[00:23:42] [PASSED] 32
[00:23:42] [PASSED] 256
[00:23:42] ================ [PASSED] test_range_spare =================
[00:23:42] ===================== [PASSED] guc_dbm =====================
[00:23:42] =================== guc_idm (6 subtests) ===================
[00:23:42] [PASSED] bad_init
[00:23:42] [PASSED] no_init
[00:23:42] [PASSED] init_fini
[00:23:42] [PASSED] check_used
[00:23:42] [PASSED] check_quota
[00:23:42] [PASSED] check_all
[00:23:42] ===================== [PASSED] guc_idm =====================
[00:23:42] ================== no_relay (3 subtests) ===================
[00:23:42] [PASSED] xe_drops_guc2pf_if_not_ready
[00:23:42] [PASSED] xe_drops_guc2vf_if_not_ready
[00:23:42] [PASSED] xe_rejects_send_if_not_ready
[00:23:42] ==================== [PASSED] no_relay =====================
[00:23:42] ================== pf_relay (14 subtests) ==================
[00:23:42] [PASSED] pf_rejects_guc2pf_too_short
[00:23:42] [PASSED] pf_rejects_guc2pf_too_long
[00:23:42] [PASSED] pf_rejects_guc2pf_no_payload
[00:23:42] [PASSED] pf_fails_no_payload
[00:23:42] [PASSED] pf_fails_bad_origin
[00:23:42] [PASSED] pf_fails_bad_type
[00:23:42] [PASSED] pf_txn_reports_error
[00:23:42] [PASSED] pf_txn_sends_pf2guc
[00:23:42] [PASSED] pf_sends_pf2guc
[00:23:42] [SKIPPED] pf_loopback_nop
[00:23:42] [SKIPPED] pf_loopback_echo
[00:23:42] [SKIPPED] pf_loopback_fail
[00:23:42] [SKIPPED] pf_loopback_busy
[00:23:42] [SKIPPED] pf_loopback_retry
[00:23:42] ==================== [PASSED] pf_relay =====================
[00:23:42] ================== vf_relay (3 subtests) ===================
[00:23:42] [PASSED] vf_rejects_guc2vf_too_short
[00:23:42] [PASSED] vf_rejects_guc2vf_too_long
[00:23:42] [PASSED] vf_rejects_guc2vf_no_payload
[00:23:42] ==================== [PASSED] vf_relay =====================
[00:23:42] ================= pf_service (11 subtests) =================
[00:23:42] [PASSED] pf_negotiate_any
[00:23:42] [PASSED] pf_negotiate_base_match
[00:23:42] [PASSED] pf_negotiate_base_newer
[00:23:42] [PASSED] pf_negotiate_base_next
[00:23:42] [SKIPPED] pf_negotiate_base_older
[00:23:42] [PASSED] pf_negotiate_base_prev
[00:23:42] [PASSED] pf_negotiate_latest_match
[00:23:42] [PASSED] pf_negotiate_latest_newer
[00:23:42] [PASSED] pf_negotiate_latest_next
[00:23:42] [SKIPPED] pf_negotiate_latest_older
[00:23:42] [SKIPPED] pf_negotiate_latest_prev
[00:23:42] =================== [PASSED] pf_service ====================
[00:23:42] ===================== lmtt (1 subtest) =====================
[00:23:42] ======================== test_ops =========================
[00:23:42] [PASSED] 2-level
[00:23:42] [PASSED] multi-level
[00:23:42] ==================== [PASSED] test_ops =====================
[00:23:42] ====================== [PASSED] lmtt =======================
[00:23:42] =================== xe_mocs (2 subtests) ===================
[00:23:42] ================ xe_live_mocs_kernel_kunit ================
[00:23:42] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[00:23:42] ================ xe_live_mocs_reset_kunit =================
[00:23:42] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[00:23:42] ==================== [SKIPPED] xe_mocs =====================
[00:23:42] ================= xe_migrate (2 subtests) ==================
[00:23:42] ================= xe_migrate_sanity_kunit =================
[00:23:42] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[00:23:42] ================== xe_validate_ccs_kunit ==================
[00:23:42] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[00:23:42] =================== [SKIPPED] xe_migrate ===================
[00:23:42] ================== xe_dma_buf (1 subtest) ==================
[00:23:42] ==================== xe_dma_buf_kunit =====================
[00:23:42] ================ [SKIPPED] xe_dma_buf_kunit ================
[00:23:42] =================== [SKIPPED] xe_dma_buf ===================
[00:23:42] ================= xe_bo_shrink (1 subtest) =================
[00:23:42] =================== xe_bo_shrink_kunit ====================
[00:23:42] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[00:23:42] ================== [SKIPPED] xe_bo_shrink ==================
[00:23:42] ==================== xe_bo (2 subtests) ====================
[00:23:42] ================== xe_ccs_migrate_kunit ===================
[00:23:42] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
stty: 'standard input': Inappropriate ioctl for device
[00:23:42] ==================== xe_bo_evict_kunit ====================
[00:23:42] =============== [SKIPPED] xe_bo_evict_kunit ================
[00:23:42] ===================== [SKIPPED] xe_bo ======================
[00:23:42] ==================== args (11 subtests) ====================
[00:23:42] [PASSED] count_args_test
[00:23:42] [PASSED] call_args_example
[00:23:42] [PASSED] call_args_test
[00:23:42] [PASSED] drop_first_arg_example
[00:23:42] [PASSED] drop_first_arg_test
[00:23:42] [PASSED] first_arg_example
[00:23:42] [PASSED] first_arg_test
[00:23:42] [PASSED] last_arg_example
[00:23:42] [PASSED] last_arg_test
[00:23:42] [PASSED] pick_arg_example
[00:23:42] [PASSED] sep_comma_example
[00:23:42] ====================== [PASSED] args =======================
[00:23:42] =================== xe_pci (2 subtests) ====================
[00:23:42] [PASSED] xe_gmdid_graphics_ip
[00:23:42] [PASSED] xe_gmdid_media_ip
[00:23:42] ===================== [PASSED] xe_pci ======================
[00:23:42] =================== xe_rtp (2 subtests) ====================
[00:23:42] =============== xe_rtp_process_to_sr_tests ================
[00:23:42] [PASSED] coalesce-same-reg
[00:23:42] [PASSED] no-match-no-add
[00:23:42] [PASSED] match-or
[00:23:42] [PASSED] match-or-xfail
[00:23:42] [PASSED] no-match-no-add-multiple-rules
[00:23:42] [PASSED] two-regs-two-entries
[00:23:42] [PASSED] clr-one-set-other
[00:23:42] [PASSED] set-field
[00:23:42] [PASSED] conflict-duplicate
[00:23:42] [PASSED] conflict-not-disjoint
[00:23:42] [PASSED] conflict-reg-type
[00:23:42] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[00:23:42] ================== xe_rtp_process_tests ===================
[00:23:42] [PASSED] active1
[00:23:42] [PASSED] active2
[00:23:42] [PASSED] active-inactive
[00:23:42] [PASSED] inactive-active
[00:23:42] [PASSED] inactive-1st_or_active-inactive
[00:23:42] [PASSED] inactive-2nd_or_active-inactive
[00:23:42] [PASSED] inactive-last_or_active-inactive
[00:23:42] [PASSED] inactive-no_or_active-inactive
[00:23:42] ============== [PASSED] xe_rtp_process_tests ===============
[00:23:42] ===================== [PASSED] xe_rtp ======================
[00:23:42] ==================== xe_wa (1 subtest) =====================
[00:23:42] ======================== xe_wa_gt =========================
[00:23:42] [PASSED] TIGERLAKE (B0)
[00:23:42] [PASSED] DG1 (A0)
[00:23:42] [PASSED] DG1 (B0)
[00:23:42] [PASSED] ALDERLAKE_S (A0)
[00:23:42] [PASSED] ALDERLAKE_S (B0)
[00:23:42] [PASSED] ALDERLAKE_S (C0)
[00:23:42] [PASSED] ALDERLAKE_S (D0)
[00:23:42] [PASSED] ALDERLAKE_P (A0)
[00:23:42] [PASSED] ALDERLAKE_P (B0)
[00:23:42] [PASSED] ALDERLAKE_P (C0)
[00:23:42] [PASSED] ALDERLAKE_S_RPLS (D0)
[00:23:42] [PASSED] ALDERLAKE_P_RPLU (E0)
[00:23:42] [PASSED] DG2_G10 (C0)
[00:23:42] [PASSED] DG2_G11 (B1)
[00:23:42] [PASSED] DG2_G12 (A1)
[00:23:42] [PASSED] METEORLAKE (g:A0, m:A0)
[00:23:42] [PASSED] METEORLAKE (g:A0, m:A0)
[00:23:42] [PASSED] METEORLAKE (g:A0, m:A0)
[00:23:42] [PASSED] LUNARLAKE (g:A0, m:A0)
[00:23:42] [PASSED] LUNARLAKE (g:B0, m:A0)
[00:23:42] [PASSED] BATTLEMAGE (g:A0, m:A1)
[00:23:42] ==================== [PASSED] xe_wa_gt =====================
[00:23:42] ====================== [PASSED] xe_wa ======================
[00:23:42] ============================================================
[00:23:42] Testing complete. Ran 133 tests: passed: 117, skipped: 16
[00:23:42] Elapsed time: 30.609s total, 4.153s configuring, 26.190s building, 0.245s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[00:23:43] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[00:23:44] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
156 | u64 ioread64_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
163 | u64 ioread64_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
170 | u64 ioread64be_lo_hi(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
178 | u64 ioread64be_hi_lo(const void __iomem *addr)
| ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
| ^~~~~~~~~~~~~~~~~
[00:24:05] Starting KUnit Kernel (1/1)...
[00:24:05] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[00:24:05] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[00:24:05] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[00:24:05] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[00:24:05] =========== drm_validate_clone_mode (2 subtests) ===========
[00:24:05] ============== drm_test_check_in_clone_mode ===============
[00:24:05] [PASSED] in_clone_mode
[00:24:05] [PASSED] not_in_clone_mode
[00:24:05] ========== [PASSED] drm_test_check_in_clone_mode ===========
[00:24:05] =============== drm_test_check_valid_clones ===============
[00:24:05] [PASSED] not_in_clone_mode
[00:24:05] [PASSED] valid_clone
[00:24:05] [PASSED] invalid_clone
[00:24:05] =========== [PASSED] drm_test_check_valid_clones ===========
[00:24:05] ============= [PASSED] drm_validate_clone_mode =============
[00:24:05] ============= drm_validate_modeset (1 subtest) =============
[00:24:05] [PASSED] drm_test_check_connector_changed_modeset
[00:24:05] ============== [PASSED] drm_validate_modeset ===============
[00:24:05] ====== drm_test_bridge_get_current_state (2 subtests) ======
[00:24:05] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[00:24:05] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[00:24:05] ======== [PASSED] drm_test_bridge_get_current_state ========
[00:24:05] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[00:24:05] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[00:24:05] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[00:24:05] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[00:24:05] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[00:24:05] ================== drm_buddy (7 subtests) ==================
[00:24:05] [PASSED] drm_test_buddy_alloc_limit
[00:24:05] [PASSED] drm_test_buddy_alloc_optimistic
[00:24:05] [PASSED] drm_test_buddy_alloc_pessimistic
[00:24:05] [PASSED] drm_test_buddy_alloc_pathological
[00:24:05] [PASSED] drm_test_buddy_alloc_contiguous
[00:24:05] [PASSED] drm_test_buddy_alloc_clear
[00:24:05] [PASSED] drm_test_buddy_alloc_range_bias
[00:24:05] ==================== [PASSED] drm_buddy ====================
[00:24:05] ============= drm_cmdline_parser (40 subtests) =============
[00:24:05] [PASSED] drm_test_cmdline_force_d_only
[00:24:05] [PASSED] drm_test_cmdline_force_D_only_dvi
[00:24:05] [PASSED] drm_test_cmdline_force_D_only_hdmi
[00:24:05] [PASSED] drm_test_cmdline_force_D_only_not_digital
[00:24:05] [PASSED] drm_test_cmdline_force_e_only
[00:24:05] [PASSED] drm_test_cmdline_res
[00:24:05] [PASSED] drm_test_cmdline_res_vesa
[00:24:05] [PASSED] drm_test_cmdline_res_vesa_rblank
[00:24:05] [PASSED] drm_test_cmdline_res_rblank
[00:24:05] [PASSED] drm_test_cmdline_res_bpp
[00:24:05] [PASSED] drm_test_cmdline_res_refresh
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[00:24:05] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[00:24:05] [PASSED] drm_test_cmdline_res_margins_force_on
[00:24:05] [PASSED] drm_test_cmdline_res_vesa_margins
[00:24:05] [PASSED] drm_test_cmdline_name
[00:24:05] [PASSED] drm_test_cmdline_name_bpp
[00:24:05] [PASSED] drm_test_cmdline_name_option
[00:24:05] [PASSED] drm_test_cmdline_name_bpp_option
[00:24:05] [PASSED] drm_test_cmdline_rotate_0
[00:24:05] [PASSED] drm_test_cmdline_rotate_90
[00:24:05] [PASSED] drm_test_cmdline_rotate_180
[00:24:05] [PASSED] drm_test_cmdline_rotate_270
[00:24:05] [PASSED] drm_test_cmdline_hmirror
[00:24:05] [PASSED] drm_test_cmdline_vmirror
[00:24:05] [PASSED] drm_test_cmdline_margin_options
[00:24:05] [PASSED] drm_test_cmdline_multiple_options
[00:24:05] [PASSED] drm_test_cmdline_bpp_extra_and_option
[00:24:05] [PASSED] drm_test_cmdline_extra_and_option
[00:24:05] [PASSED] drm_test_cmdline_freestanding_options
[00:24:05] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[00:24:05] [PASSED] drm_test_cmdline_panel_orientation
[00:24:05] ================ drm_test_cmdline_invalid =================
[00:24:05] [PASSED] margin_only
[00:24:05] [PASSED] interlace_only
[00:24:05] [PASSED] res_missing_x
[00:24:05] [PASSED] res_missing_y
[00:24:05] [PASSED] res_bad_y
[00:24:05] [PASSED] res_missing_y_bpp
[00:24:05] [PASSED] res_bad_bpp
[00:24:05] [PASSED] res_bad_refresh
[00:24:05] [PASSED] res_bpp_refresh_force_on_off
[00:24:05] [PASSED] res_invalid_mode
[00:24:05] [PASSED] res_bpp_wrong_place_mode
[00:24:05] [PASSED] name_bpp_refresh
[00:24:05] [PASSED] name_refresh
[00:24:05] [PASSED] name_refresh_wrong_mode
[00:24:05] [PASSED] name_refresh_invalid_mode
[00:24:05] [PASSED] rotate_multiple
[00:24:05] [PASSED] rotate_invalid_val
[00:24:05] [PASSED] rotate_truncated
[00:24:05] [PASSED] invalid_option
[00:24:05] [PASSED] invalid_tv_option
[00:24:05] [PASSED] truncated_tv_option
[00:24:05] ============ [PASSED] drm_test_cmdline_invalid =============
[00:24:05] =============== drm_test_cmdline_tv_options ===============
[00:24:05] [PASSED] NTSC
[00:24:05] [PASSED] NTSC_443
[00:24:05] [PASSED] NTSC_J
[00:24:05] [PASSED] PAL
[00:24:05] [PASSED] PAL_M
[00:24:05] [PASSED] PAL_N
[00:24:05] [PASSED] SECAM
[00:24:05] [PASSED] MONO_525
[00:24:05] [PASSED] MONO_625
[00:24:05] =========== [PASSED] drm_test_cmdline_tv_options ===========
[00:24:05] =============== [PASSED] drm_cmdline_parser ================
[00:24:05] ========== drmm_connector_hdmi_init (20 subtests) ==========
[00:24:05] [PASSED] drm_test_connector_hdmi_init_valid
[00:24:05] [PASSED] drm_test_connector_hdmi_init_bpc_8
[00:24:05] [PASSED] drm_test_connector_hdmi_init_bpc_10
[00:24:05] [PASSED] drm_test_connector_hdmi_init_bpc_12
[00:24:05] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[00:24:05] [PASSED] drm_test_connector_hdmi_init_bpc_null
[00:24:05] [PASSED] drm_test_connector_hdmi_init_formats_empty
[00:24:05] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[00:24:05] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[00:24:05] [PASSED] supported_formats=0x9 yuv420_allowed=1
[00:24:05] [PASSED] supported_formats=0x9 yuv420_allowed=0
[00:24:05] [PASSED] supported_formats=0x3 yuv420_allowed=1
[00:24:05] [PASSED] supported_formats=0x3 yuv420_allowed=0
[00:24:05] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[00:24:05] [PASSED] drm_test_connector_hdmi_init_null_ddc
[00:24:05] [PASSED] drm_test_connector_hdmi_init_null_product
[00:24:05] [PASSED] drm_test_connector_hdmi_init_null_vendor
[00:24:05] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[00:24:05] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[00:24:05] [PASSED] drm_test_connector_hdmi_init_product_valid
[00:24:05] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[00:24:05] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[00:24:05] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[00:24:05] ========= drm_test_connector_hdmi_init_type_valid =========
[00:24:05] [PASSED] HDMI-A
[00:24:05] [PASSED] HDMI-B
[00:24:05] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[00:24:05] ======== drm_test_connector_hdmi_init_type_invalid ========
[00:24:05] [PASSED] Unknown
[00:24:05] [PASSED] VGA
[00:24:05] [PASSED] DVI-I
[00:24:05] [PASSED] DVI-D
[00:24:05] [PASSED] DVI-A
[00:24:05] [PASSED] Composite
[00:24:05] [PASSED] SVIDEO
[00:24:05] [PASSED] LVDS
[00:24:05] [PASSED] Component
[00:24:05] [PASSED] DIN
[00:24:05] [PASSED] DP
[00:24:05] [PASSED] TV
[00:24:05] [PASSED] eDP
[00:24:05] [PASSED] Virtual
[00:24:05] [PASSED] DSI
[00:24:05] [PASSED] DPI
[00:24:05] [PASSED] Writeback
[00:24:05] [PASSED] SPI
[00:24:05] [PASSED] USB
[00:24:05] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[00:24:05] ============ [PASSED] drmm_connector_hdmi_init =============
[00:24:05] ============= drmm_connector_init (3 subtests) =============
[00:24:05] [PASSED] drm_test_drmm_connector_init
[00:24:05] [PASSED] drm_test_drmm_connector_init_null_ddc
[00:24:05] ========= drm_test_drmm_connector_init_type_valid =========
[00:24:05] [PASSED] Unknown
[00:24:05] [PASSED] VGA
[00:24:05] [PASSED] DVI-I
[00:24:05] [PASSED] DVI-D
[00:24:05] [PASSED] DVI-A
[00:24:05] [PASSED] Composite
[00:24:05] [PASSED] SVIDEO
[00:24:05] [PASSED] LVDS
[00:24:05] [PASSED] Component
[00:24:05] [PASSED] DIN
[00:24:05] [PASSED] DP
[00:24:05] [PASSED] HDMI-A
[00:24:05] [PASSED] HDMI-B
[00:24:05] [PASSED] TV
[00:24:05] [PASSED] eDP
[00:24:05] [PASSED] Virtual
[00:24:05] [PASSED] DSI
[00:24:05] [PASSED] DPI
[00:24:05] [PASSED] Writeback
[00:24:05] [PASSED] SPI
[00:24:05] [PASSED] USB
[00:24:05] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[00:24:05] =============== [PASSED] drmm_connector_init ===============
[00:24:05] ========= drm_connector_dynamic_init (6 subtests) ==========
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_init
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_init_properties
[00:24:05] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[00:24:05] [PASSED] Unknown
[00:24:05] [PASSED] VGA
[00:24:05] [PASSED] DVI-I
[00:24:05] [PASSED] DVI-D
[00:24:05] [PASSED] DVI-A
[00:24:05] [PASSED] Composite
[00:24:05] [PASSED] SVIDEO
[00:24:05] [PASSED] LVDS
[00:24:05] [PASSED] Component
[00:24:05] [PASSED] DIN
[00:24:05] [PASSED] DP
[00:24:05] [PASSED] HDMI-A
[00:24:05] [PASSED] HDMI-B
[00:24:05] [PASSED] TV
[00:24:05] [PASSED] eDP
[00:24:05] [PASSED] Virtual
[00:24:05] [PASSED] DSI
[00:24:05] [PASSED] DPI
[00:24:05] [PASSED] Writeback
[00:24:05] [PASSED] SPI
[00:24:05] [PASSED] USB
[00:24:05] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[00:24:05] ======== drm_test_drm_connector_dynamic_init_name =========
[00:24:05] [PASSED] Unknown
[00:24:05] [PASSED] VGA
[00:24:05] [PASSED] DVI-I
[00:24:05] [PASSED] DVI-D
[00:24:05] [PASSED] DVI-A
[00:24:05] [PASSED] Composite
[00:24:05] [PASSED] SVIDEO
[00:24:05] [PASSED] LVDS
[00:24:05] [PASSED] Component
[00:24:05] [PASSED] DIN
[00:24:05] [PASSED] DP
[00:24:05] [PASSED] HDMI-A
[00:24:05] [PASSED] HDMI-B
[00:24:05] [PASSED] TV
[00:24:05] [PASSED] eDP
[00:24:05] [PASSED] Virtual
[00:24:05] [PASSED] DSI
[00:24:05] [PASSED] DPI
[00:24:05] [PASSED] Writeback
[00:24:05] [PASSED] SPI
[00:24:05] [PASSED] USB
[00:24:05] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[00:24:05] =========== [PASSED] drm_connector_dynamic_init ============
[00:24:05] ==== drm_connector_dynamic_register_early (4 subtests) =====
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[00:24:05] ====== [PASSED] drm_connector_dynamic_register_early =======
[00:24:05] ======= drm_connector_dynamic_register (7 subtests) ========
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[00:24:05] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[00:24:05] ========= [PASSED] drm_connector_dynamic_register ==========
[00:24:05] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[00:24:05] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[00:24:05] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[00:24:05] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[00:24:05] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[00:24:05] ========== drm_test_get_tv_mode_from_name_valid ===========
[00:24:05] [PASSED] NTSC
[00:24:05] [PASSED] NTSC-443
[00:24:05] [PASSED] NTSC-J
[00:24:05] [PASSED] PAL
[00:24:05] [PASSED] PAL-M
[00:24:05] [PASSED] PAL-N
[00:24:05] [PASSED] SECAM
[00:24:05] [PASSED] Mono
[00:24:05] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[00:24:05] [PASSED] drm_test_get_tv_mode_from_name_truncated
[00:24:05] ============ [PASSED] drm_get_tv_mode_from_name ============
[00:24:05] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[00:24:05] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[00:24:05] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[00:24:05] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[00:24:05] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[00:24:05] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[00:24:05] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[00:24:05] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[00:24:05] [PASSED] VIC 96
[00:24:05] [PASSED] VIC 97
[00:24:05] [PASSED] VIC 101
[00:24:05] [PASSED] VIC 102
[00:24:05] [PASSED] VIC 106
[00:24:05] [PASSED] VIC 107
[00:24:05] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[00:24:05] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[00:24:05] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[00:24:05] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[00:24:05] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[00:24:05] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[00:24:05] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[00:24:05] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[00:24:05] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[00:24:05] [PASSED] Automatic
[00:24:05] [PASSED] Full
[00:24:05] [PASSED] Limited 16:235
[00:24:05] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[00:24:05] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[00:24:05] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[00:24:05] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[00:24:05] === drm_test_drm_hdmi_connector_get_output_format_name ====
[00:24:05] [PASSED] RGB
[00:24:05] [PASSED] YUV 4:2:0
[00:24:05] [PASSED] YUV 4:2:2
[00:24:05] [PASSED] YUV 4:4:4
[00:24:05] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[00:24:05] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[00:24:05] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[00:24:05] ============= drm_damage_helper (21 subtests) ==============
[00:24:05] [PASSED] drm_test_damage_iter_no_damage
[00:24:05] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[00:24:05] [PASSED] drm_test_damage_iter_no_damage_src_moved
[00:24:05] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[00:24:05] [PASSED] drm_test_damage_iter_no_damage_not_visible
[00:24:05] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[00:24:05] [PASSED] drm_test_damage_iter_no_damage_no_fb
[00:24:05] [PASSED] drm_test_damage_iter_simple_damage
[00:24:05] [PASSED] drm_test_damage_iter_single_damage
[00:24:05] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[00:24:05] [PASSED] drm_test_damage_iter_single_damage_outside_src
[00:24:05] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[00:24:05] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[00:24:05] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[00:24:05] [PASSED] drm_test_damage_iter_single_damage_src_moved
[00:24:05] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[00:24:05] [PASSED] drm_test_damage_iter_damage
[00:24:05] [PASSED] drm_test_damage_iter_damage_one_intersect
[00:24:05] [PASSED] drm_test_damage_iter_damage_one_outside
[00:24:05] [PASSED] drm_test_damage_iter_damage_src_moved
[00:24:05] [PASSED] drm_test_damage_iter_damage_not_visible
[00:24:05] ================ [PASSED] drm_damage_helper ================
[00:24:05] ============== drm_dp_mst_helper (3 subtests) ==============
[00:24:05] ============== drm_test_dp_mst_calc_pbn_mode ==============
[00:24:05] [PASSED] Clock 154000 BPP 30 DSC disabled
[00:24:05] [PASSED] Clock 234000 BPP 30 DSC disabled
[00:24:05] [PASSED] Clock 297000 BPP 24 DSC disabled
[00:24:05] [PASSED] Clock 332880 BPP 24 DSC enabled
[00:24:05] [PASSED] Clock 324540 BPP 24 DSC enabled
[00:24:05] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[00:24:05] ============== drm_test_dp_mst_calc_pbn_div ===============
[00:24:05] [PASSED] Link rate 2000000 lane count 4
[00:24:05] [PASSED] Link rate 2000000 lane count 2
[00:24:05] [PASSED] Link rate 2000000 lane count 1
[00:24:05] [PASSED] Link rate 1350000 lane count 4
[00:24:05] [PASSED] Link rate 1350000 lane count 2
[00:24:05] [PASSED] Link rate 1350000 lane count 1
[00:24:05] [PASSED] Link rate 1000000 lane count 4
[00:24:05] [PASSED] Link rate 1000000 lane count 2
[00:24:05] [PASSED] Link rate 1000000 lane count 1
[00:24:05] [PASSED] Link rate 810000 lane count 4
[00:24:05] [PASSED] Link rate 810000 lane count 2
[00:24:05] [PASSED] Link rate 810000 lane count 1
[00:24:05] [PASSED] Link rate 540000 lane count 4
[00:24:05] [PASSED] Link rate 540000 lane count 2
[00:24:05] [PASSED] Link rate 540000 lane count 1
[00:24:05] [PASSED] Link rate 270000 lane count 4
[00:24:05] [PASSED] Link rate 270000 lane count 2
[00:24:05] [PASSED] Link rate 270000 lane count 1
[00:24:05] [PASSED] Link rate 162000 lane count 4
[00:24:05] [PASSED] Link rate 162000 lane count 2
[00:24:05] [PASSED] Link rate 162000 lane count 1
[00:24:05] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[00:24:05] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[00:24:05] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[00:24:05] [PASSED] DP_POWER_UP_PHY with port number
[00:24:05] [PASSED] DP_POWER_DOWN_PHY with port number
[00:24:05] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[00:24:05] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[00:24:05] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[00:24:05] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[00:24:05] [PASSED] DP_QUERY_PAYLOAD with port number
[00:24:05] [PASSED] DP_QUERY_PAYLOAD with VCPI
[00:24:05] [PASSED] DP_REMOTE_DPCD_READ with port number
[00:24:05] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[00:24:05] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[00:24:05] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[00:24:05] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[00:24:05] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[00:24:05] [PASSED] DP_REMOTE_I2C_READ with port number
[00:24:05] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[00:24:05] [PASSED] DP_REMOTE_I2C_READ with transactions array
[00:24:05] [PASSED] DP_REMOTE_I2C_WRITE with port number
[00:24:05] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[00:24:05] [PASSED] DP_REMOTE_I2C_WRITE with data array
[00:24:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[00:24:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[00:24:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[00:24:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[00:24:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[00:24:05] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[00:24:05] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[00:24:05] ================ [PASSED] drm_dp_mst_helper ================
[00:24:05] ================== drm_exec (7 subtests) ===================
[00:24:05] [PASSED] sanitycheck
[00:24:05] [PASSED] test_lock
[00:24:05] [PASSED] test_lock_unlock
[00:24:05] [PASSED] test_duplicates
[00:24:05] [PASSED] test_prepare
[00:24:05] [PASSED] test_prepare_array
[00:24:05] [PASSED] test_multiple_loops
[00:24:05] ==================== [PASSED] drm_exec =====================
[00:24:05] =========== drm_format_helper_test (18 subtests) ===========
[00:24:05] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[00:24:05] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[00:24:05] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[00:24:05] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[00:24:05] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[00:24:05] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[00:24:05] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[00:24:05] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[00:24:05] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[00:24:05] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[00:24:05] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[00:24:05] ============== drm_test_fb_xrgb8888_to_mono ===============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[00:24:05] ==================== drm_test_fb_swab =====================
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ================ [PASSED] drm_test_fb_swab =================
[00:24:05] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[00:24:05] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[00:24:05] [PASSED] single_pixel_source_buffer
[00:24:05] [PASSED] single_pixel_clip_rectangle
[00:24:05] [PASSED] well_known_colors
[00:24:05] [PASSED] destination_pitch
[00:24:05] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[00:24:05] ================= drm_test_fb_clip_offset =================
[00:24:05] [PASSED] pass through
[00:24:05] [PASSED] horizontal offset
[00:24:05] [PASSED] vertical offset
[00:24:05] [PASSED] horizontal and vertical offset
[00:24:05] [PASSED] horizontal offset (custom pitch)
[00:24:05] [PASSED] vertical offset (custom pitch)
[00:24:05] [PASSED] horizontal and vertical offset (custom pitch)
[00:24:05] ============= [PASSED] drm_test_fb_clip_offset =============
[00:24:05] ============== drm_test_fb_build_fourcc_list ==============
[00:24:05] [PASSED] no native formats
[00:24:05] [PASSED] XRGB8888 as native format
[00:24:05] [PASSED] remove duplicates
[00:24:05] [PASSED] convert alpha formats
[00:24:05] [PASSED] random formats
[00:24:05] ========== [PASSED] drm_test_fb_build_fourcc_list ==========
[00:24:05] =================== drm_test_fb_memcpy ====================
[00:24:05] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[00:24:05] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[00:24:05] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[00:24:05] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[00:24:05] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[00:24:05] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[00:24:05] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[00:24:05] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[00:24:05] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[00:24:05] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[00:24:05] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[00:24:05] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[00:24:05] =============== [PASSED] drm_test_fb_memcpy ================
[00:24:05] ============= [PASSED] drm_format_helper_test ==============
[00:24:05] ================= drm_format (18 subtests) =================
[00:24:05] [PASSED] drm_test_format_block_width_invalid
[00:24:05] [PASSED] drm_test_format_block_width_one_plane
[00:24:05] [PASSED] drm_test_format_block_width_two_plane
[00:24:05] [PASSED] drm_test_format_block_width_three_plane
[00:24:05] [PASSED] drm_test_format_block_width_tiled
[00:24:05] [PASSED] drm_test_format_block_height_invalid
[00:24:05] [PASSED] drm_test_format_block_height_one_plane
[00:24:05] [PASSED] drm_test_format_block_height_two_plane
[00:24:05] [PASSED] drm_test_format_block_height_three_plane
[00:24:05] [PASSED] drm_test_format_block_height_tiled
[00:24:05] [PASSED] drm_test_format_min_pitch_invalid
[00:24:05] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[00:24:05] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[00:24:05] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[00:24:05] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[00:24:05] [PASSED] drm_test_format_min_pitch_two_plane
[00:24:05] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[00:24:05] [PASSED] drm_test_format_min_pitch_tiled
[00:24:05] =================== [PASSED] drm_format ====================
[00:24:05] ============== drm_framebuffer (10 subtests) ===============
[00:24:05] ========== drm_test_framebuffer_check_src_coords ==========
[00:24:05] [PASSED] Success: source fits into fb
[00:24:05] [PASSED] Fail: overflowing fb with x-axis coordinate
[00:24:05] [PASSED] Fail: overflowing fb with y-axis coordinate
[00:24:05] [PASSED] Fail: overflowing fb with source width
[00:24:05] [PASSED] Fail: overflowing fb with source height
[00:24:05] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[00:24:05] [PASSED] drm_test_framebuffer_cleanup
[00:24:05] =============== drm_test_framebuffer_create ===============
[00:24:05] [PASSED] ABGR8888 normal sizes
[00:24:05] [PASSED] ABGR8888 max sizes
[00:24:05] [PASSED] ABGR8888 pitch greater than min required
[00:24:05] [PASSED] ABGR8888 pitch less than min required
[00:24:05] [PASSED] ABGR8888 Invalid width
[00:24:05] [PASSED] ABGR8888 Invalid buffer handle
[00:24:05] [PASSED] No pixel format
[00:24:05] [PASSED] ABGR8888 Width 0
[00:24:05] [PASSED] ABGR8888 Height 0
[00:24:05] [PASSED] ABGR8888 Out of bound height * pitch combination
[00:24:05] [PASSED] ABGR8888 Large buffer offset
[00:24:05] [PASSED] ABGR8888 Buffer offset for inexistent plane
[00:24:05] [PASSED] ABGR8888 Invalid flag
[00:24:05] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[00:24:05] [PASSED] ABGR8888 Valid buffer modifier
[00:24:05] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[00:24:05] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[00:24:05] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[00:24:05] [PASSED] NV12 Normal sizes
[00:24:05] [PASSED] NV12 Max sizes
[00:24:05] [PASSED] NV12 Invalid pitch
[00:24:05] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[00:24:05] [PASSED] NV12 different modifier per-plane
[00:24:05] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[00:24:05] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[00:24:05] [PASSED] NV12 Modifier for inexistent plane
[00:24:05] [PASSED] NV12 Handle for inexistent plane
[00:24:05] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[00:24:05] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[00:24:05] [PASSED] YVU420 Normal sizes
[00:24:05] [PASSED] YVU420 Max sizes
[00:24:05] [PASSED] YVU420 Invalid pitch
[00:24:05] [PASSED] YVU420 Different pitches
[00:24:05] [PASSED] YVU420 Different buffer offsets/pitches
[00:24:05] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[00:24:05] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[00:24:05] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[00:24:05] [PASSED] YVU420 Valid modifier
[00:24:05] [PASSED] YVU420 Different modifiers per plane
[00:24:05] [PASSED] YVU420 Modifier for inexistent plane
[00:24:05] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[00:24:05] [PASSED] X0L2 Normal sizes
[00:24:05] [PASSED] X0L2 Max sizes
[00:24:05] [PASSED] X0L2 Invalid pitch
[00:24:05] [PASSED] X0L2 Pitch greater than minimum required
[00:24:05] [PASSED] X0L2 Handle for inexistent plane
[00:24:05] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[00:24:05] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[00:24:05] [PASSED] X0L2 Valid modifier
[00:24:05] [PASSED] X0L2 Modifier for inexistent plane
[00:24:05] =========== [PASSED] drm_test_framebuffer_create ===========
[00:24:05] [PASSED] drm_test_framebuffer_free
[00:24:05] [PASSED] drm_test_framebuffer_init
[00:24:05] [PASSED] drm_test_framebuffer_init_bad_format
[00:24:05] [PASSED] drm_test_framebuffer_init_dev_mismatch
[00:24:05] [PASSED] drm_test_framebuffer_lookup
[00:24:05] [PASSED] drm_test_framebuffer_lookup_inexistent
[00:24:05] [PASSED] drm_test_framebuffer_modifiers_not_supported
[00:24:05] ================= [PASSED] drm_framebuffer =================
[00:24:05] ================ drm_gem_shmem (8 subtests) ================
[00:24:05] [PASSED] drm_gem_shmem_test_obj_create
[00:24:05] [PASSED] drm_gem_shmem_test_obj_create_private
[00:24:05] [PASSED] drm_gem_shmem_test_pin_pages
[00:24:05] [PASSED] drm_gem_shmem_test_vmap
[00:24:05] [PASSED] drm_gem_shmem_test_get_pages_sgt
[00:24:05] [PASSED] drm_gem_shmem_test_get_sg_table
[00:24:05] [PASSED] drm_gem_shmem_test_madvise
[00:24:05] [PASSED] drm_gem_shmem_test_purge
[00:24:05] ================== [PASSED] drm_gem_shmem ==================
[00:24:05] === drm_atomic_helper_connector_hdmi_check (23 subtests) ===
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[00:24:05] [PASSED] drm_test_check_disable_connector
[00:24:05] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[00:24:05] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback
[00:24:05] [PASSED] drm_test_check_max_tmds_rate_format_fallback
[00:24:05] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[00:24:05] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[00:24:05] [PASSED] drm_test_check_output_bpc_dvi
[00:24:05] [PASSED] drm_test_check_output_bpc_format_vic_1
[00:24:05] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[00:24:05] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[00:24:05] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[00:24:05] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[00:24:05] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[00:24:05] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[00:24:05] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[00:24:05] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[00:24:05] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[00:24:05] [PASSED] drm_test_check_broadcast_rgb_value
[00:24:05] [PASSED] drm_test_check_bpc_8_value
[00:24:05] [PASSED] drm_test_check_bpc_10_value
[00:24:05] [PASSED] drm_test_check_bpc_12_value
[00:24:05] [PASSED] drm_test_check_format_value
[00:24:05] [PASSED] drm_test_check_tmds_char_value
[00:24:05] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[00:24:05] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[00:24:05] [PASSED] drm_test_check_mode_valid
[00:24:05] [PASSED] drm_test_check_mode_valid_reject
[00:24:05] [PASSED] drm_test_check_mode_valid_reject_rate
[00:24:05] [PASSED] drm_test_check_mode_valid_reject_max_clock
[00:24:05] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[00:24:05] ================= drm_managed (2 subtests) =================
[00:24:05] [PASSED] drm_test_managed_release_action
[00:24:05] [PASSED] drm_test_managed_run_action
[00:24:05] =================== [PASSED] drm_managed ===================
[00:24:05] =================== drm_mm (6 subtests) ====================
[00:24:05] [PASSED] drm_test_mm_init
[00:24:05] [PASSED] drm_test_mm_debug
[00:24:05] [PASSED] drm_test_mm_align32
[00:24:05] [PASSED] drm_test_mm_align64
[00:24:05] [PASSED] drm_test_mm_lowest
[00:24:05] [PASSED] drm_test_mm_highest
[00:24:05] ===================== [PASSED] drm_mm ======================
[00:24:05] ============= drm_modes_analog_tv (5 subtests) =============
[00:24:05] [PASSED] drm_test_modes_analog_tv_mono_576i
[00:24:05] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[00:24:05] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[00:24:05] [PASSED] drm_test_modes_analog_tv_pal_576i
[00:24:05] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[00:24:05] =============== [PASSED] drm_modes_analog_tv ===============
[00:24:05] ============== drm_plane_helper (2 subtests) ===============
[00:24:05] =============== drm_test_check_plane_state ================
[00:24:05] [PASSED] clipping_simple
[00:24:05] [PASSED] clipping_rotate_reflect
[00:24:05] [PASSED] positioning_simple
[00:24:05] [PASSED] upscaling
[00:24:05] [PASSED] downscaling
[00:24:05] [PASSED] rounding1
[00:24:05] [PASSED] rounding2
[00:24:05] [PASSED] rounding3
[00:24:05] [PASSED] rounding4
[00:24:05] =========== [PASSED] drm_test_check_plane_state ============
[00:24:05] =========== drm_test_check_invalid_plane_state ============
[00:24:05] [PASSED] positioning_invalid
[00:24:05] [PASSED] upscaling_invalid
[00:24:05] [PASSED] downscaling_invalid
[00:24:05] ======= [PASSED] drm_test_check_invalid_plane_state ========
[00:24:05] ================ [PASSED] drm_plane_helper =================
[00:24:05] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[00:24:05] ====== drm_test_connector_helper_tv_get_modes_check =======
[00:24:05] [PASSED] None
[00:24:05] [PASSED] PAL
[00:24:05] [PASSED] NTSC
[00:24:05] [PASSED] Both, NTSC Default
[00:24:05] [PASSED] Both, PAL Default
[00:24:05] [PASSED] Both, NTSC Default, with PAL on command-line
[00:24:05] [PASSED] Both, PAL Default, with NTSC on command-line
[00:24:05] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[00:24:05] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[00:24:05] ================== drm_rect (9 subtests) ===================
[00:24:05] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[00:24:05] [PASSED] drm_test_rect_clip_scaled_not_clipped
[00:24:05] [PASSED] drm_test_rect_clip_scaled_clipped
[00:24:05] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[00:24:05] ================= drm_test_rect_intersect =================
[00:24:05] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[00:24:05] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[00:24:05] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[00:24:05] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[00:24:05] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[00:24:05] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[00:24:05] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[00:24:05] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[00:24:05] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[00:24:05] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[00:24:05] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[00:24:05] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[00:24:05] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[00:24:05] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
stty: 'standard input': Inappropriate ioctl for device
[00:24:05] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[00:24:05] ============= [PASSED] drm_test_rect_intersect =============
[00:24:05] ================ drm_test_rect_calc_hscale ================
[00:24:05] [PASSED] normal use
[00:24:05] [PASSED] out of max range
[00:24:05] [PASSED] out of min range
[00:24:05] [PASSED] zero dst
[00:24:05] [PASSED] negative src
[00:24:05] [PASSED] negative dst
[00:24:05] ============ [PASSED] drm_test_rect_calc_hscale ============
[00:24:05] ================ drm_test_rect_calc_vscale ================
[00:24:05] [PASSED] normal use
[00:24:05] [PASSED] out of max range
[00:24:05] [PASSED] out of min range
[00:24:05] [PASSED] zero dst
[00:24:05] [PASSED] negative src
[00:24:05] [PASSED] negative dst
[00:24:05] ============ [PASSED] drm_test_rect_calc_vscale ============
[00:24:05] ================== drm_test_rect_rotate ===================
[00:24:05] [PASSED] reflect-x
[00:24:05] [PASSED] reflect-y
[00:24:05] [PASSED] rotate-0
[00:24:05] [PASSED] rotate-90
[00:24:05] [PASSED] rotate-180
[00:24:05] [PASSED] rotate-270
[00:24:05] ============== [PASSED] drm_test_rect_rotate ===============
[00:24:05] ================ drm_test_rect_rotate_inv =================
[00:24:05] [PASSED] reflect-x
[00:24:05] [PASSED] reflect-y
[00:24:05] [PASSED] rotate-0
[00:24:05] [PASSED] rotate-90
[00:24:05] [PASSED] rotate-180
[00:24:05] [PASSED] rotate-270
[00:24:05] ============ [PASSED] drm_test_rect_rotate_inv =============
[00:24:05] ==================== [PASSED] drm_rect =====================
[00:24:05] ============================================================
[00:24:05] Testing complete. Ran 608 tests: passed: 608
[00:24:05] Elapsed time: 22.812s total, 1.726s configuring, 20.917s building, 0.139s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[00:24:05] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[00:24:07] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json ARCH=um O=.kunit --jobs=48
[00:24:15] Starting KUnit Kernel (1/1)...
[00:24:15] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[00:24:15] ================= ttm_device (5 subtests) ==================
[00:24:15] [PASSED] ttm_device_init_basic
[00:24:15] [PASSED] ttm_device_init_multiple
[00:24:15] [PASSED] ttm_device_fini_basic
[00:24:15] [PASSED] ttm_device_init_no_vma_man
[00:24:15] ================== ttm_device_init_pools ==================
[00:24:15] [PASSED] No DMA allocations, no DMA32 required
[00:24:15] [PASSED] DMA allocations, DMA32 required
[00:24:15] [PASSED] No DMA allocations, DMA32 required
[00:24:15] [PASSED] DMA allocations, no DMA32 required
[00:24:15] ============== [PASSED] ttm_device_init_pools ==============
[00:24:15] =================== [PASSED] ttm_device ====================
[00:24:15] ================== ttm_pool (8 subtests) ===================
[00:24:15] ================== ttm_pool_alloc_basic ===================
[00:24:15] [PASSED] One page
[00:24:15] [PASSED] More than one page
[00:24:15] [PASSED] Above the allocation limit
[00:24:15] [PASSED] One page, with coherent DMA mappings enabled
[00:24:15] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[00:24:15] ============== [PASSED] ttm_pool_alloc_basic ===============
[00:24:15] ============== ttm_pool_alloc_basic_dma_addr ==============
[00:24:15] [PASSED] One page
[00:24:15] [PASSED] More than one page
[00:24:15] [PASSED] Above the allocation limit
[00:24:15] [PASSED] One page, with coherent DMA mappings enabled
[00:24:15] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[00:24:15] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[00:24:15] [PASSED] ttm_pool_alloc_order_caching_match
[00:24:15] [PASSED] ttm_pool_alloc_caching_mismatch
[00:24:15] [PASSED] ttm_pool_alloc_order_mismatch
[00:24:15] [PASSED] ttm_pool_free_dma_alloc
[00:24:15] [PASSED] ttm_pool_free_no_dma_alloc
[00:24:15] [PASSED] ttm_pool_fini_basic
[00:24:15] ==================== [PASSED] ttm_pool =====================
[00:24:15] ================ ttm_resource (8 subtests) =================
[00:24:15] ================= ttm_resource_init_basic =================
[00:24:15] [PASSED] Init resource in TTM_PL_SYSTEM
[00:24:15] [PASSED] Init resource in TTM_PL_VRAM
[00:24:15] [PASSED] Init resource in a private placement
[00:24:15] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[00:24:15] ============= [PASSED] ttm_resource_init_basic =============
[00:24:15] [PASSED] ttm_resource_init_pinned
[00:24:15] [PASSED] ttm_resource_fini_basic
[00:24:15] [PASSED] ttm_resource_manager_init_basic
[00:24:15] [PASSED] ttm_resource_manager_usage_basic
[00:24:15] [PASSED] ttm_resource_manager_set_used_basic
[00:24:15] [PASSED] ttm_sys_man_alloc_basic
[00:24:15] [PASSED] ttm_sys_man_free_basic
[00:24:15] ================== [PASSED] ttm_resource ===================
[00:24:15] =================== ttm_tt (15 subtests) ===================
[00:24:15] ==================== ttm_tt_init_basic ====================
[00:24:15] [PASSED] Page-aligned size
[00:24:15] [PASSED] Extra pages requested
[00:24:15] ================ [PASSED] ttm_tt_init_basic ================
[00:24:15] [PASSED] ttm_tt_init_misaligned
[00:24:15] [PASSED] ttm_tt_fini_basic
[00:24:15] [PASSED] ttm_tt_fini_sg
[00:24:15] [PASSED] ttm_tt_fini_shmem
[00:24:15] [PASSED] ttm_tt_create_basic
[00:24:15] [PASSED] ttm_tt_create_invalid_bo_type
[00:24:15] [PASSED] ttm_tt_create_ttm_exists
[00:24:15] [PASSED] ttm_tt_create_failed
[00:24:15] [PASSED] ttm_tt_destroy_basic
[00:24:15] [PASSED] ttm_tt_populate_null_ttm
[00:24:15] [PASSED] ttm_tt_populate_populated_ttm
[00:24:15] [PASSED] ttm_tt_unpopulate_basic
[00:24:15] [PASSED] ttm_tt_unpopulate_empty_ttm
[00:24:15] [PASSED] ttm_tt_swapin_basic
[00:24:15] ===================== [PASSED] ttm_tt ======================
[00:24:15] =================== ttm_bo (14 subtests) ===================
[00:24:15] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[00:24:15] [PASSED] Cannot be interrupted and sleeps
[00:24:15] [PASSED] Cannot be interrupted, locks straight away
[00:24:15] [PASSED] Can be interrupted, sleeps
[00:24:15] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[00:24:15] [PASSED] ttm_bo_reserve_locked_no_sleep
[00:24:15] [PASSED] ttm_bo_reserve_no_wait_ticket
[00:24:15] [PASSED] ttm_bo_reserve_double_resv
[00:24:15] [PASSED] ttm_bo_reserve_interrupted
[00:24:15] [PASSED] ttm_bo_reserve_deadlock
[00:24:15] [PASSED] ttm_bo_unreserve_basic
[00:24:15] [PASSED] ttm_bo_unreserve_pinned
[00:24:15] [PASSED] ttm_bo_unreserve_bulk
[00:24:15] [PASSED] ttm_bo_put_basic
[00:24:15] [PASSED] ttm_bo_put_shared_resv
[00:24:15] [PASSED] ttm_bo_pin_basic
[00:24:15] [PASSED] ttm_bo_pin_unpin_resource
[00:24:15] [PASSED] ttm_bo_multiple_pin_one_unpin
[00:24:15] ===================== [PASSED] ttm_bo ======================
[00:24:15] ============== ttm_bo_validate (22 subtests) ===============
[00:24:15] ============== ttm_bo_init_reserved_sys_man ===============
[00:24:15] [PASSED] Buffer object for userspace
[00:24:15] [PASSED] Kernel buffer object
[00:24:15] [PASSED] Shared buffer object
[00:24:15] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[00:24:15] ============== ttm_bo_init_reserved_mock_man ==============
[00:24:15] [PASSED] Buffer object for userspace
[00:24:15] [PASSED] Kernel buffer object
[00:24:15] [PASSED] Shared buffer object
[00:24:15] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[00:24:15] [PASSED] ttm_bo_init_reserved_resv
[00:24:15] ================== ttm_bo_validate_basic ==================
[00:24:15] [PASSED] Buffer object for userspace
[00:24:15] [PASSED] Kernel buffer object
[00:24:15] [PASSED] Shared buffer object
[00:24:15] ============== [PASSED] ttm_bo_validate_basic ==============
[00:24:15] [PASSED] ttm_bo_validate_invalid_placement
[00:24:15] ============= ttm_bo_validate_same_placement ==============
[00:24:15] [PASSED] System manager
[00:24:15] [PASSED] VRAM manager
[00:24:15] ========= [PASSED] ttm_bo_validate_same_placement ==========
[00:24:15] [PASSED] ttm_bo_validate_failed_alloc
[00:24:15] [PASSED] ttm_bo_validate_pinned
[00:24:15] [PASSED] ttm_bo_validate_busy_placement
[00:24:15] ================ ttm_bo_validate_multihop =================
[00:24:15] [PASSED] Buffer object for userspace
[00:24:15] [PASSED] Kernel buffer object
[00:24:15] [PASSED] Shared buffer object
[00:24:15] ============ [PASSED] ttm_bo_validate_multihop =============
[00:24:15] ========== ttm_bo_validate_no_placement_signaled ==========
[00:24:15] [PASSED] Buffer object in system domain, no page vector
[00:24:15] [PASSED] Buffer object in system domain with an existing page vector
[00:24:15] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[00:24:15] ======== ttm_bo_validate_no_placement_not_signaled ========
[00:24:15] [PASSED] Buffer object for userspace
[00:24:15] [PASSED] Kernel buffer object
[00:24:15] [PASSED] Shared buffer object
[00:24:15] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[00:24:15] [PASSED] ttm_bo_validate_move_fence_signaled
[00:24:15] ========= ttm_bo_validate_move_fence_not_signaled =========
[00:24:15] [PASSED] Waits for GPU
[00:24:15] [PASSED] Tries to lock straight away
[00:24:15] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[00:24:15] [PASSED] ttm_bo_validate_swapout
[00:24:15] [PASSED] ttm_bo_validate_happy_evict
[00:24:15] [PASSED] ttm_bo_validate_all_pinned_evict
[00:24:15] [PASSED] ttm_bo_validate_allowed_only_evict
[00:24:15] [PASSED] ttm_bo_validate_deleted_evict
[00:24:15] [PASSED] ttm_bo_validate_busy_domain_evict
[00:24:15] [PASSED] ttm_bo_validate_evict_gutting
[00:24:15] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[00:24:15] ================= [PASSED] ttm_bo_validate =================
[00:24:15] ============================================================
[00:24:15] Testing complete. Ran 102 tests: passed: 102
[00:24:15] Elapsed time: 9.975s total, 1.700s configuring, 7.657s building, 0.533s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.Build: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (6 preceding siblings ...)
2025-04-04 0:24 ` ✓ CI.KUnit: success " Patchwork
@ 2025-04-04 0:40 ` Patchwork
2025-04-04 0:43 ` ✓ CI.Hooks: " Patchwork
` (3 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 0:40 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
State : success
== Summary ==
lib/modules/6.14.0-xe+/kernel/arch/x86/events/amd/
lib/modules/6.14.0-xe+/kernel/arch/x86/events/amd/amd-uncore.ko
lib/modules/6.14.0-xe+/kernel/arch/x86/events/rapl.ko
lib/modules/6.14.0-xe+/kernel/arch/x86/kvm/
lib/modules/6.14.0-xe+/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.14.0-xe+/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.14.0-xe+/kernel/arch/x86/kvm/kvm-amd.ko
lib/modules/6.14.0-xe+/kernel/kernel/
lib/modules/6.14.0-xe+/kernel/kernel/kheaders.ko
lib/modules/6.14.0-xe+/kernel/crypto/
lib/modules/6.14.0-xe+/kernel/crypto/ecrdsa_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/xcbc.ko
lib/modules/6.14.0-xe+/kernel/crypto/serpent_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/aria_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/crypto_simd.ko
lib/modules/6.14.0-xe+/kernel/crypto/adiantum.ko
lib/modules/6.14.0-xe+/kernel/crypto/tcrypt.ko
lib/modules/6.14.0-xe+/kernel/crypto/crypto_engine.ko
lib/modules/6.14.0-xe+/kernel/crypto/zstd.ko
lib/modules/6.14.0-xe+/kernel/crypto/asymmetric_keys/
lib/modules/6.14.0-xe+/kernel/crypto/asymmetric_keys/pkcs7_test_key.ko
lib/modules/6.14.0-xe+/kernel/crypto/asymmetric_keys/pkcs8_key_parser.ko
lib/modules/6.14.0-xe+/kernel/crypto/des_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/xctr.ko
lib/modules/6.14.0-xe+/kernel/crypto/authenc.ko
lib/modules/6.14.0-xe+/kernel/crypto/sm4_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/camellia_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/sm3.ko
lib/modules/6.14.0-xe+/kernel/crypto/pcrypt.ko
lib/modules/6.14.0-xe+/kernel/crypto/aegis128.ko
lib/modules/6.14.0-xe+/kernel/crypto/af_alg.ko
lib/modules/6.14.0-xe+/kernel/crypto/algif_aead.ko
lib/modules/6.14.0-xe+/kernel/crypto/cmac.ko
lib/modules/6.14.0-xe+/kernel/crypto/sm3_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/aes_ti.ko
lib/modules/6.14.0-xe+/kernel/crypto/chacha_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/poly1305_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/nhpoly1305.ko
lib/modules/6.14.0-xe+/kernel/crypto/crc32_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/essiv.ko
lib/modules/6.14.0-xe+/kernel/crypto/ccm.ko
lib/modules/6.14.0-xe+/kernel/crypto/wp512.ko
lib/modules/6.14.0-xe+/kernel/crypto/streebog_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/authencesn.ko
lib/modules/6.14.0-xe+/kernel/crypto/echainiv.ko
lib/modules/6.14.0-xe+/kernel/crypto/lrw.ko
lib/modules/6.14.0-xe+/kernel/crypto/cryptd.ko
lib/modules/6.14.0-xe+/kernel/crypto/crypto_user.ko
lib/modules/6.14.0-xe+/kernel/crypto/algif_hash.ko
lib/modules/6.14.0-xe+/kernel/crypto/polyval-generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/hctr2.ko
lib/modules/6.14.0-xe+/kernel/crypto/842.ko
lib/modules/6.14.0-xe+/kernel/crypto/pcbc.ko
lib/modules/6.14.0-xe+/kernel/crypto/ansi_cprng.ko
lib/modules/6.14.0-xe+/kernel/crypto/cast6_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/twofish_common.ko
lib/modules/6.14.0-xe+/kernel/crypto/twofish_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/lz4hc.ko
lib/modules/6.14.0-xe+/kernel/crypto/blowfish_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/md4.ko
lib/modules/6.14.0-xe+/kernel/crypto/chacha20poly1305.ko
lib/modules/6.14.0-xe+/kernel/crypto/curve25519-generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/lz4.ko
lib/modules/6.14.0-xe+/kernel/crypto/rmd160.ko
lib/modules/6.14.0-xe+/kernel/crypto/algif_skcipher.ko
lib/modules/6.14.0-xe+/kernel/crypto/cast5_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/fcrypt.ko
lib/modules/6.14.0-xe+/kernel/crypto/ecdsa_generic.ko
lib/modules/6.14.0-xe+/kernel/crypto/sm4.ko
lib/modules/6.14.0-xe+/kernel/crypto/cast_common.ko
lib/modules/6.14.0-xe+/kernel/crypto/blowfish_common.ko
lib/modules/6.14.0-xe+/kernel/crypto/michael_mic.ko
lib/modules/6.14.0-xe+/kernel/crypto/async_tx/
lib/modules/6.14.0-xe+/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.14.0-xe+/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.14.0-xe+/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.14.0-xe+/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.14.0-xe+/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.14.0-xe+/kernel/crypto/algif_rng.ko
lib/modules/6.14.0-xe+/kernel/block/
lib/modules/6.14.0-xe+/kernel/block/bfq.ko
lib/modules/6.14.0-xe+/kernel/block/kyber-iosched.ko
lib/modules/6.14.0-xe+/build
lib/modules/6.14.0-xe+/modules.alias.bin
lib/modules/6.14.0-xe+/modules.builtin
lib/modules/6.14.0-xe+/modules.softdep
lib/modules/6.14.0-xe+/modules.alias
lib/modules/6.14.0-xe+/modules.order
lib/modules/6.14.0-xe+/modules.symbols
lib/modules/6.14.0-xe+/modules.dep.bin
+ mv kernel-nodebug.tar.gz ..
+ cd ..
+ rm -rf archive
++ date +%s
+ echo -e '\e[0Ksection_end:1743727243:package_x86_64_nodebug\r\e[0K'
^[[0Ksection_end:1743727243:package_x86_64_nodebug
^[[0K
+ sync
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.Hooks: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (7 preceding siblings ...)
2025-04-04 0:40 ` ✓ CI.Build: " Patchwork
@ 2025-04-04 0:43 ` Patchwork
2025-04-04 0:44 ` ✓ CI.checksparse: " Patchwork
` (2 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 0:43 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
State : success
== Summary ==
run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
GEN Makefile
DESCEND objtool
CALL ../scripts/checksyscalls.sh
INSTALL libsubcmd_headers
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
CC /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
LD /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
AR /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
CC /workspace/kernel/build64-default/tools/objtool/weak.o
CC /workspace/kernel/build64-default/tools/objtool/check.o
CC /workspace/kernel/build64-default/tools/objtool/special.o
CC /workspace/kernel/build64-default/tools/objtool/builtin-check.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
CC /workspace/kernel/build64-default/tools/objtool/elf.o
CC /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.o
CC /workspace/kernel/build64-default/tools/objtool/objtool.o
CC /workspace/kernel/build64-default/tools/objtool/orc_gen.o
CC /workspace/kernel/build64-default/tools/objtool/orc_dump.o
CC /workspace/kernel/build64-default/tools/objtool/libstring.o
CC /workspace/kernel/build64-default/tools/objtool/libctype.o
CC /workspace/kernel/build64-default/tools/objtool/str_error_r.o
CC /workspace/kernel/build64-default/tools/objtool/librbtree.o
LD /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
LD /workspace/kernel/build64-default/tools/objtool/objtool-in.o
LINK /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default W=1 drivers/gpu/drm/xe
make[1]: Entering directory '/workspace/kernel/build64-default'
make[2]: Nothing to be done for 'drivers/gpu/drm/xe'.
make[1]: Leaving directory '/workspace/kernel/build64-default'
run-parts: executing /workspace/ci/hooks/11-build-32b
+++ realpath /workspace/ci/hooks/11-build-32b
++ dirname /workspace/ci/hooks/11-build-32b
+ THIS_SCRIPT_DIR=/workspace/ci/hooks
+ SRC_DIR=/workspace/kernel
+ TOOLS_SRC_DIR=/workspace/ci
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ BUILD_DIR=/workspace/kernel/build64-default/build32
+ cd /workspace/kernel
+ mkdir -p /workspace/kernel/build64-default/build32
++ nproc
+ make -j48 ARCH=i386 O=/workspace/kernel/build64-default/build32 defconfig
make[1]: Entering directory '/workspace/kernel/build64-default/build32'
GEN Makefile
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
LEX scripts/kconfig/lexer.lex.c
HOSTCC scripts/kconfig/menu.o
YACC scripts/kconfig/parser.tab.[ch]
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/util.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'i386_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/workspace/kernel/build64-default/build32'
+ cd /workspace/kernel/build64-default/build32
+ /workspace/kernel/scripts/kconfig/merge_config.sh .config /workspace/ci/kernel/fragments/10-xe.fragment
Using .config as base
Merging /workspace/ci/kernel/fragments/10-xe.fragment
Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/fragments/10-xe.fragment:
Previous value: # CONFIG_DRM_XE is not set
New value: CONFIG_DRM_XE=m
GEN Makefile
#
# configuration written to .config
#
Value requested for CONFIG_HAVE_UID16 not in final .config
Requested value: CONFIG_HAVE_UID16=y
Actual value:
Value requested for CONFIG_UID16 not in final .config
Requested value: CONFIG_UID16=y
Actual value:
Value requested for CONFIG_X86_32 not in final .config
Requested value: CONFIG_X86_32=y
Actual value:
Value requested for CONFIG_OUTPUT_FORMAT not in final .config
Requested value: CONFIG_OUTPUT_FORMAT="elf32-i386"
Actual value: CONFIG_OUTPUT_FORMAT="elf64-x86-64"
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MIN=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MIN=28
Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS_MAX=16
Actual value: CONFIG_ARCH_MMAP_RND_BITS_MAX=32
Value requested for CONFIG_PGTABLE_LEVELS not in final .config
Requested value: CONFIG_PGTABLE_LEVELS=2
Actual value: CONFIG_PGTABLE_LEVELS=5
Value requested for CONFIG_X86_BIGSMP not in final .config
Requested value: # CONFIG_X86_BIGSMP is not set
Actual value:
Value requested for CONFIG_X86_INTEL_QUARK not in final .config
Requested value: # CONFIG_X86_INTEL_QUARK is not set
Actual value:
Value requested for CONFIG_X86_RDC321X not in final .config
Requested value: # CONFIG_X86_RDC321X is not set
Actual value:
Value requested for CONFIG_X86_32_NON_STANDARD not in final .config
Requested value: # CONFIG_X86_32_NON_STANDARD is not set
Actual value:
Value requested for CONFIG_X86_32_IRIS not in final .config
Requested value: # CONFIG_X86_32_IRIS is not set
Actual value:
Value requested for CONFIG_M486SX not in final .config
Requested value: # CONFIG_M486SX is not set
Actual value:
Value requested for CONFIG_M486 not in final .config
Requested value: # CONFIG_M486 is not set
Actual value:
Value requested for CONFIG_M586 not in final .config
Requested value: # CONFIG_M586 is not set
Actual value:
Value requested for CONFIG_M586TSC not in final .config
Requested value: # CONFIG_M586TSC is not set
Actual value:
Value requested for CONFIG_M586MMX not in final .config
Requested value: # CONFIG_M586MMX is not set
Actual value:
Value requested for CONFIG_M686 not in final .config
Requested value: CONFIG_M686=y
Actual value:
Value requested for CONFIG_MPENTIUMII not in final .config
Requested value: # CONFIG_MPENTIUMII is not set
Actual value:
Value requested for CONFIG_MPENTIUMIII not in final .config
Requested value: # CONFIG_MPENTIUMIII is not set
Actual value:
Value requested for CONFIG_MPENTIUMM not in final .config
Requested value: # CONFIG_MPENTIUMM is not set
Actual value:
Value requested for CONFIG_MPENTIUM4 not in final .config
Requested value: # CONFIG_MPENTIUM4 is not set
Actual value:
Value requested for CONFIG_MK6 not in final .config
Requested value: # CONFIG_MK6 is not set
Actual value:
Value requested for CONFIG_MK7 not in final .config
Requested value: # CONFIG_MK7 is not set
Actual value:
Value requested for CONFIG_MCRUSOE not in final .config
Requested value: # CONFIG_MCRUSOE is not set
Actual value:
Value requested for CONFIG_MEFFICEON not in final .config
Requested value: # CONFIG_MEFFICEON is not set
Actual value:
Value requested for CONFIG_MWINCHIPC6 not in final .config
Requested value: # CONFIG_MWINCHIPC6 is not set
Actual value:
Value requested for CONFIG_MWINCHIP3D not in final .config
Requested value: # CONFIG_MWINCHIP3D is not set
Actual value:
Value requested for CONFIG_MELAN not in final .config
Requested value: # CONFIG_MELAN is not set
Actual value:
Value requested for CONFIG_MGEODEGX1 not in final .config
Requested value: # CONFIG_MGEODEGX1 is not set
Actual value:
Value requested for CONFIG_MGEODE_LX not in final .config
Requested value: # CONFIG_MGEODE_LX is not set
Actual value:
Value requested for CONFIG_MCYRIXIII not in final .config
Requested value: # CONFIG_MCYRIXIII is not set
Actual value:
Value requested for CONFIG_MVIAC3_2 not in final .config
Requested value: # CONFIG_MVIAC3_2 is not set
Actual value:
Value requested for CONFIG_MVIAC7 not in final .config
Requested value: # CONFIG_MVIAC7 is not set
Actual value:
Value requested for CONFIG_X86_GENERIC not in final .config
Requested value: # CONFIG_X86_GENERIC is not set
Actual value:
Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_INTERNODE_CACHE_SHIFT=5
Actual value: CONFIG_X86_INTERNODE_CACHE_SHIFT=6
Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config
Requested value: CONFIG_X86_L1_CACHE_SHIFT=5
Actual value: CONFIG_X86_L1_CACHE_SHIFT=6
Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config
Requested value: CONFIG_X86_USE_PPRO_CHECKSUM=y
Actual value:
Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config
Requested value: CONFIG_X86_MINIMUM_CPU_FAMILY=6
Actual value: CONFIG_X86_MINIMUM_CPU_FAMILY=64
Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config
Requested value: CONFIG_CPU_SUP_TRANSMETA_32=y
Actual value:
Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config
Requested value: CONFIG_CPU_SUP_VORTEX_32=y
Actual value:
Value requested for CONFIG_HPET_TIMER not in final .config
Requested value: # CONFIG_HPET_TIMER is not set
Actual value: CONFIG_HPET_TIMER=y
Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config
Requested value: CONFIG_NR_CPUS_RANGE_END=8
Actual value: CONFIG_NR_CPUS_RANGE_END=512
Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config
Requested value: CONFIG_NR_CPUS_DEFAULT=8
Actual value: CONFIG_NR_CPUS_DEFAULT=64
Value requested for CONFIG_X86_ANCIENT_MCE not in final .config
Requested value: # CONFIG_X86_ANCIENT_MCE is not set
Actual value:
Value requested for CONFIG_X86_LEGACY_VM86 not in final .config
Requested value: # CONFIG_X86_LEGACY_VM86 is not set
Actual value:
Value requested for CONFIG_X86_ESPFIX32 not in final .config
Requested value: CONFIG_X86_ESPFIX32=y
Actual value:
Value requested for CONFIG_TOSHIBA not in final .config
Requested value: # CONFIG_TOSHIBA is not set
Actual value:
Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config
Requested value: # CONFIG_X86_REBOOTFIXUPS is not set
Actual value:
Value requested for CONFIG_MICROCODE_INITRD32 not in final .config
Requested value: CONFIG_MICROCODE_INITRD32=y
Actual value:
Value requested for CONFIG_NOHIGHMEM not in final .config
Requested value: # CONFIG_NOHIGHMEM is not set
Actual value:
Value requested for CONFIG_HIGHMEM4G not in final .config
Requested value: CONFIG_HIGHMEM4G=y
Actual value:
Value requested for CONFIG_HIGHMEM64G not in final .config
Requested value: # CONFIG_HIGHMEM64G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_3G not in final .config
Requested value: CONFIG_VMSPLIT_3G=y
Actual value:
Value requested for CONFIG_VMSPLIT_3G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_3G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G not in final .config
Requested value: # CONFIG_VMSPLIT_2G is not set
Actual value:
Value requested for CONFIG_VMSPLIT_2G_OPT not in final .config
Requested value: # CONFIG_VMSPLIT_2G_OPT is not set
Actual value:
Value requested for CONFIG_VMSPLIT_1G not in final .config
Requested value: # CONFIG_VMSPLIT_1G is not set
Actual value:
Value requested for CONFIG_PAGE_OFFSET not in final .config
Requested value: CONFIG_PAGE_OFFSET=0xC0000000
Actual value:
Value requested for CONFIG_HIGHMEM not in final .config
Requested value: CONFIG_HIGHMEM=y
Actual value:
Value requested for CONFIG_X86_PAE not in final .config
Requested value: # CONFIG_X86_PAE is not set
Actual value:
Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config
Requested value: CONFIG_ARCH_FLATMEM_ENABLE=y
Actual value:
Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_ARCH_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config
Requested value: CONFIG_ILLEGAL_POINTER_VALUE=0
Actual value: CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
Value requested for CONFIG_HIGHPTE not in final .config
Requested value: # CONFIG_HIGHPTE is not set
Actual value:
Value requested for CONFIG_COMPAT_VDSO not in final .config
Requested value: # CONFIG_COMPAT_VDSO is not set
Actual value:
Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config
Requested value: CONFIG_FUNCTION_PADDING_CFI=0
Actual value: CONFIG_FUNCTION_PADDING_CFI=11
Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config
Requested value: CONFIG_FUNCTION_PADDING_BYTES=4
Actual value: CONFIG_FUNCTION_PADDING_BYTES=16
Value requested for CONFIG_APM not in final .config
Requested value: # CONFIG_APM is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K6 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K6 is not set
Actual value:
Value requested for CONFIG_X86_POWERNOW_K7 not in final .config
Requested value: # CONFIG_X86_POWERNOW_K7 is not set
Actual value:
Value requested for CONFIG_X86_GX_SUSPMOD not in final .config
Requested value: # CONFIG_X86_GX_SUSPMOD is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_ICH is not set
Actual value:
Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config
Requested value: # CONFIG_X86_SPEEDSTEP_SMI is not set
Actual value:
Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config
Requested value: # CONFIG_X86_CPUFREQ_NFORCE2 is not set
Actual value:
Value requested for CONFIG_X86_LONGRUN not in final .config
Requested value: # CONFIG_X86_LONGRUN is not set
Actual value:
Value requested for CONFIG_X86_LONGHAUL not in final .config
Requested value: # CONFIG_X86_LONGHAUL is not set
Actual value:
Value requested for CONFIG_X86_E_POWERSAVER not in final .config
Requested value: # CONFIG_X86_E_POWERSAVER is not set
Actual value:
Value requested for CONFIG_PCI_GOBIOS not in final .config
Requested value: # CONFIG_PCI_GOBIOS is not set
Actual value:
Value requested for CONFIG_PCI_GOMMCONFIG not in final .config
Requested value: # CONFIG_PCI_GOMMCONFIG is not set
Actual value:
Value requested for CONFIG_PCI_GODIRECT not in final .config
Requested value: # CONFIG_PCI_GODIRECT is not set
Actual value:
Value requested for CONFIG_PCI_GOANY not in final .config
Requested value: CONFIG_PCI_GOANY=y
Actual value:
Value requested for CONFIG_PCI_BIOS not in final .config
Requested value: CONFIG_PCI_BIOS=y
Actual value:
Value requested for CONFIG_ISA not in final .config
Requested value: # CONFIG_ISA is not set
Actual value:
Value requested for CONFIG_SCx200 not in final .config
Requested value: # CONFIG_SCx200 is not set
Actual value:
Value requested for CONFIG_OLPC not in final .config
Requested value: # CONFIG_OLPC is not set
Actual value:
Value requested for CONFIG_ALIX not in final .config
Requested value: # CONFIG_ALIX is not set
Actual value:
Value requested for CONFIG_NET5501 not in final .config
Requested value: # CONFIG_NET5501 is not set
Actual value:
Value requested for CONFIG_GEOS not in final .config
Requested value: # CONFIG_GEOS is not set
Actual value:
Value requested for CONFIG_COMPAT_32 not in final .config
Requested value: CONFIG_COMPAT_32=y
Actual value:
Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config
Requested value: CONFIG_HAVE_ATOMIC_IOMAP=y
Actual value:
Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config
Requested value: CONFIG_ARCH_32BIT_OFF_T=y
Actual value:
Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config
Requested value: CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
Actual value:
Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config
Requested value: CONFIG_MODULES_USE_ELF_REL=y
Actual value:
Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config
Requested value: CONFIG_ARCH_MMAP_RND_BITS=8
Actual value: CONFIG_ARCH_MMAP_RND_BITS=28
Value requested for CONFIG_CLONE_BACKWARDS not in final .config
Requested value: CONFIG_CLONE_BACKWARDS=y
Actual value:
Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config
Requested value: CONFIG_OLD_SIGSUSPEND3=y
Actual value:
Value requested for CONFIG_OLD_SIGACTION not in final .config
Requested value: CONFIG_OLD_SIGACTION=y
Actual value:
Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config
Requested value: CONFIG_ARCH_SPLIT_ARG64=y
Actual value:
Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config
Requested value: CONFIG_FUNCTION_ALIGNMENT=4
Actual value: CONFIG_FUNCTION_ALIGNMENT=16
Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config
Requested value: CONFIG_SELECT_MEMORY_MODEL=y
Actual value:
Value requested for CONFIG_FLATMEM_MANUAL not in final .config
Requested value: CONFIG_FLATMEM_MANUAL=y
Actual value:
Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config
Requested value: # CONFIG_SPARSEMEM_MANUAL is not set
Actual value:
Value requested for CONFIG_FLATMEM not in final .config
Requested value: CONFIG_FLATMEM=y
Actual value:
Value requested for CONFIG_SPARSEMEM_STATIC not in final .config
Requested value: CONFIG_SPARSEMEM_STATIC=y
Actual value:
Value requested for CONFIG_BOUNCE not in final .config
Requested value: CONFIG_BOUNCE=y
Actual value:
Value requested for CONFIG_KMAP_LOCAL not in final .config
Requested value: CONFIG_KMAP_LOCAL=y
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_COMPAQ is not set
Actual value:
Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config
Requested value: # CONFIG_HOTPLUG_PCI_IBM is not set
Actual value:
Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config
Requested value: CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
Actual value:
Value requested for CONFIG_PCH_PHUB not in final .config
Requested value: # CONFIG_PCH_PHUB is not set
Actual value:
Value requested for CONFIG_SCSI_NSP32 not in final .config
Requested value: # CONFIG_SCSI_NSP32 is not set
Actual value:
Value requested for CONFIG_PATA_CS5520 not in final .config
Requested value: # CONFIG_PATA_CS5520 is not set
Actual value:
Value requested for CONFIG_PATA_CS5530 not in final .config
Requested value: # CONFIG_PATA_CS5530 is not set
Actual value:
Value requested for CONFIG_PATA_CS5535 not in final .config
Requested value: # CONFIG_PATA_CS5535 is not set
Actual value:
Value requested for CONFIG_PATA_CS5536 not in final .config
Requested value: # CONFIG_PATA_CS5536 is not set
Actual value:
Value requested for CONFIG_PATA_SC1200 not in final .config
Requested value: # CONFIG_PATA_SC1200 is not set
Actual value:
Value requested for CONFIG_PCH_GBE not in final .config
Requested value: # CONFIG_PCH_GBE is not set
Actual value:
Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config
Requested value: # CONFIG_INPUT_WISTRON_BTNS is not set
Actual value:
Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config
Requested value: # CONFIG_SERIAL_TIMBERDALE is not set
Actual value:
Value requested for CONFIG_SERIAL_PCH_UART not in final .config
Requested value: # CONFIG_SERIAL_PCH_UART is not set
Actual value:
Value requested for CONFIG_HW_RANDOM_GEODE not in final .config
Requested value: CONFIG_HW_RANDOM_GEODE=y
Actual value:
Value requested for CONFIG_SONYPI not in final .config
Requested value: # CONFIG_SONYPI is not set
Actual value:
Value requested for CONFIG_PC8736x_GPIO not in final .config
Requested value: # CONFIG_PC8736x_GPIO is not set
Actual value:
Value requested for CONFIG_NSC_GPIO not in final .config
Requested value: # CONFIG_NSC_GPIO is not set
Actual value:
Value requested for CONFIG_I2C_EG20T not in final .config
Requested value: # CONFIG_I2C_EG20T is not set
Actual value:
Value requested for CONFIG_SCx200_ACB not in final .config
Requested value: # CONFIG_SCx200_ACB is not set
Actual value:
Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config
Requested value: # CONFIG_PTP_1588_CLOCK_PCH is not set
Actual value:
Value requested for CONFIG_SBC8360_WDT not in final .config
Requested value: # CONFIG_SBC8360_WDT is not set
Actual value:
Value requested for CONFIG_SBC7240_WDT not in final .config
Requested value: # CONFIG_SBC7240_WDT is not set
Actual value:
Value requested for CONFIG_MFD_CS5535 not in final .config
Requested value: # CONFIG_MFD_CS5535 is not set
Actual value:
Value requested for CONFIG_AGP_ALI not in final .config
Requested value: # CONFIG_AGP_ALI is not set
Actual value:
Value requested for CONFIG_AGP_ATI not in final .config
Requested value: # CONFIG_AGP_ATI is not set
Actual value:
Value requested for CONFIG_AGP_AMD not in final .config
Requested value: # CONFIG_AGP_AMD is not set
Actual value:
Value requested for CONFIG_AGP_NVIDIA not in final .config
Requested value: # CONFIG_AGP_NVIDIA is not set
Actual value:
Value requested for CONFIG_AGP_SWORKS not in final .config
Requested value: # CONFIG_AGP_SWORKS is not set
Actual value:
Value requested for CONFIG_AGP_EFFICEON not in final .config
Requested value: # CONFIG_AGP_EFFICEON is not set
Actual value:
Value requested for CONFIG_SND_CS5530 not in final .config
Requested value: # CONFIG_SND_CS5530 is not set
Actual value:
Value requested for CONFIG_SND_CS5535AUDIO not in final .config
Requested value: # CONFIG_SND_CS5535AUDIO is not set
Actual value:
Value requested for CONFIG_SND_SIS7019 not in final .config
Requested value: # CONFIG_SND_SIS7019 is not set
Actual value:
Value requested for CONFIG_LEDS_OT200 not in final .config
Requested value: # CONFIG_LEDS_OT200 is not set
Actual value:
Value requested for CONFIG_PCH_DMA not in final .config
Requested value: # CONFIG_PCH_DMA is not set
Actual value:
Value requested for CONFIG_CLKSRC_I8253 not in final .config
Requested value: CONFIG_CLKSRC_I8253=y
Actual value:
Value requested for CONFIG_MAILBOX not in final .config
Requested value: # CONFIG_MAILBOX is not set
Actual value: CONFIG_MAILBOX=y
Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config
Requested value: # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config
Requested value: # CONFIG_CRYPTO_TWOFISH_586 is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config
Requested value: # CONFIG_CRYPTO_DEV_GEODE is not set
Actual value:
Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config
Requested value: # CONFIG_CRYPTO_DEV_HIFN_795X is not set
Actual value:
Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config
Requested value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
Actual value: CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
Value requested for CONFIG_AUDIT_GENERIC not in final .config
Requested value: CONFIG_AUDIT_GENERIC=y
Actual value:
Value requested for CONFIG_GENERIC_VDSO_32 not in final .config
Requested value: CONFIG_GENERIC_VDSO_32=y
Actual value:
Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config
Requested value: # CONFIG_DEBUG_KMAP_LOCAL is not set
Actual value:
Value requested for CONFIG_DEBUG_HIGHMEM not in final .config
Requested value: # CONFIG_DEBUG_HIGHMEM is not set
Actual value:
Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config
Requested value: CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
Actual value:
Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config
Requested value: # CONFIG_DEBUG_STACKOVERFLOW is not set
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
Actual value:
Value requested for CONFIG_HAVE_FUNCTION_GRAPH_FREGS not in final .config
Requested value: CONFIG_HAVE_FUNCTION_GRAPH_FREGS=y
Actual value:
Value requested for CONFIG_HAVE_FTRACE_GRAPH_FUNC not in final .config
Requested value: CONFIG_HAVE_FTRACE_GRAPH_FUNC=y
Actual value:
Value requested for CONFIG_DRM_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_KUNIT_TEST=m
Actual value:
Value requested for CONFIG_DRM_XE_WERROR not in final .config
Requested value: CONFIG_DRM_XE_WERROR=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG not in final .config
Requested value: CONFIG_DRM_XE_DEBUG=y
Actual value:
Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config
Requested value: CONFIG_DRM_XE_DEBUG_MEM=y
Actual value:
Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config
Requested value: CONFIG_DRM_XE_KUNIT_TEST=m
Actual value:
++ nproc
+ make -j48 ARCH=i386 olddefconfig
GEN Makefile
#
# configuration written to .config
#
++ nproc
+ make -j48 ARCH=i386
SYNC include/config/auto.conf.cmd
GEN Makefile
GEN Makefile
WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h
WRAP arch/x86/include/generated/uapi/asm/errno.h
WRAP arch/x86/include/generated/uapi/asm/fcntl.h
WRAP arch/x86/include/generated/uapi/asm/ioctl.h
WRAP arch/x86/include/generated/uapi/asm/ioctls.h
WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h
WRAP arch/x86/include/generated/uapi/asm/param.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
UPD include/generated/uapi/linux/version.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
WRAP arch/x86/include/generated/uapi/asm/resource.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
WRAP arch/x86/include/generated/uapi/asm/socket.h
WRAP arch/x86/include/generated/uapi/asm/sockios.h
WRAP arch/x86/include/generated/uapi/asm/termbits.h
WRAP arch/x86/include/generated/uapi/asm/termios.h
WRAP arch/x86/include/generated/uapi/asm/types.h
HOSTCC arch/x86/tools/relocs_32.o
UPD include/generated/compile.h
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/fprobe.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/mmzone.h
WRAP arch/x86/include/generated/asm/irq_regs.h
WRAP arch/x86/include/generated/asm/kmap_size.h
WRAP arch/x86/include/generated/asm/local64.h
WRAP arch/x86/include/generated/asm/mmiowb.h
WRAP arch/x86/include/generated/asm/module.lds.h
WRAP arch/x86/include/generated/asm/rwonce.h
HOSTCC scripts/kallsyms
HOSTCC scripts/sorttable
HOSTCC scripts/asn1_compiler
HOSTCC scripts/selinux/mdp/mdp
HOSTLD arch/x86/tools/relocs
UPD include/config/kernel.release
UPD include/generated/utsrelease.h
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
CC scripts/mod/devicetable-offsets.s
UPD scripts/mod/devicetable-offsets.h
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTCC scripts/mod/symsearch.o
HOSTLD scripts/mod/modpost
CC kernel/bounds.s
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h
CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h
UPD include/generated/timeconst.h
UPD include/generated/bounds.h
CC arch/x86/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL /workspace/kernel/scripts/checksyscalls.sh
LDS scripts/module.lds
HOSTCC usr/gen_init_cpio
CC init/main.o
CC init/do_mounts.o
CC certs/system_keyring.o
CC ipc/util.o
CC init/do_mounts_initrd.o
UPD init/utsversion-tmp.h
CC init/initramfs.o
CC ipc/msgutil.o
CC mm/filemap.o
CC io_uring/io_uring.o
CC init/calibrate.o
CC ipc/msg.o
CC mm/mempool.o
CC arch/x86/realmode/init.o
CC io_uring/opdef.o
CC ipc/sem.o
CC init/init_task.o
CC arch/x86/video/video-common.o
AS arch/x86/lib/atomic64_cx8_32.o
AR arch/x86/crypto/built-in.a
AR arch/x86/net/built-in.a
CC arch/x86/pci/i386.o
CC arch/x86/power/cpu.o
CC security/keys/gc.o
CC arch/x86/events/amd/core.o
HOSTCC security/selinux/genheaders
CC arch/x86/power/hibernate_32.o
AR arch/x86/entry/vsyscall/built-in.a
AR virt/lib/built-in.a
CC fs/nfs_common/nfsacl.o
CC arch/x86/events/zhaoxin/core.o
CC fs/iomap/trace.o
CC arch/x86/events/intel/core.o
CC fs/quota/dquot.o
AS arch/x86/entry/entry.o
AR arch/x86/platform/atom/built-in.a
CC block/partitions/core.o
CC arch/x86/mm/pat/set_memory.o
AR drivers/cache/built-in.a
CC security/integrity/iint.o
CC arch/x86/virt/svm/cmdline.o
CC arch/x86/kernel/fpu/init.o
CC lib/math/div64.o
CC fs/notify/dnotify/dnotify.o
AR virt/built-in.a
CC net/core/sock.o
CC lib/crypto/memneq.o
CC sound/core/seq/seq.o
CC block/partitions/msdos.o
AR drivers/irqchip/built-in.a
AR arch/x86/platform/ce4100/built-in.a
CC lib/crypto/mpi/generic_mpih-lshift.o
CC arch/x86/entry/vdso/vma.o
AS arch/x86/lib/checksum_32.o
CC arch/x86/lib/cmdline.o
CC arch/x86/platform/efi/memmap.o
AR drivers/bus/mhi/built-in.a
CC kernel/sched/core.o
AR drivers/bus/built-in.a
CC fs/nfs_common/grace.o
CC crypto/asymmetric_keys/asymmetric_type.o
AR drivers/pwm/built-in.a
AR drivers/leds/trigger/built-in.a
AR drivers/leds/blink/built-in.a
AR arch/x86/virt/svm/built-in.a
AR drivers/leds/simple/built-in.a
AR arch/x86/virt/vmx/built-in.a
AS arch/x86/lib/cmpxchg8b_emu.o
CC drivers/leds/led-core.o
AR arch/x86/virt/built-in.a
CC crypto/asymmetric_keys/restrict.o
CC arch/x86/lib/cpu.o
CC lib/math/gcd.o
GEN security/selinux/flask.h security/selinux/av_permissions.h
CC security/selinux/avc.o
CC lib/math/lcm.o
CC lib/math/int_log.o
CC lib/math/int_pow.o
GEN usr/initramfs_data.cpio
COPY usr/initramfs_inc_data
AS usr/initramfs_data.o
HOSTCC certs/extract-cert
CC sound/core/sound.o
AR usr/built-in.a
CC lib/math/int_sqrt.o
CC arch/x86/kernel/fpu/bugs.o
CC crypto/api.o
CC security/selinux/hooks.o
CC lib/math/reciprocal_div.o
CC arch/x86/kernel/fpu/core.o
CC lib/math/rational.o
CC arch/x86/lib/delay.o
CC sound/core/seq/seq_lock.o
AS arch/x86/realmode/rm/header.o
AS arch/x86/lib/getuser.o
CC lib/crypto/mpi/generic_mpih-mul1.o
AS arch/x86/realmode/rm/trampoline_32.o
CC arch/x86/entry/vdso/extable.o
AS arch/x86/realmode/rm/stack.o
AR arch/x86/video/built-in.a
AS arch/x86/realmode/rm/reboot.o
CERT certs/x509_certificate_list
CC arch/x86/events/amd/lbr.o
CERT certs/signing_key.x509
AS certs/system_certificates.o
AS arch/x86/realmode/rm/wakeup_asm.o
AR certs/built-in.a
CC security/integrity/integrity_audit.o
CC arch/x86/events/amd/ibs.o
CC block/bdev.o
CC io_uring/kbuf.o
CC arch/x86/realmode/rm/wakemain.o
CC lib/zlib_inflate/inffast.o
CC lib/zlib_inflate/inflate.o
CC drivers/leds/led-class.o
CC lib/zlib_inflate/infutil.o
CC arch/x86/pci/init.o
CC security/commoncap.o
CC crypto/asymmetric_keys/signature.o
CC fs/nfs_common/common.o
CC arch/x86/realmode/rm/video-mode.o
AS arch/x86/power/hibernate_asm_32.o
AR fs/notify/dnotify/built-in.a
CC fs/notify/inotify/inotify_fsnotify.o
CC security/keys/key.o
CC arch/x86/platform/efi/quirks.o
AR fs/notify/fanotify/built-in.a
CC kernel/locking/mutex.o
CC kernel/power/qos.o
GEN arch/x86/lib/inat-tables.c
CC arch/x86/power/hibernate.o
CC kernel/printk/printk.o
CC arch/x86/lib/insn-eval.o
CC block/partitions/efi.o
AR arch/x86/events/zhaoxin/built-in.a
AS arch/x86/realmode/rm/copy.o
CC kernel/locking/semaphore.o
CC kernel/printk/printk_safe.o
AR lib/math/built-in.a
CC kernel/printk/nbcon.o
AS arch/x86/realmode/rm/bioscall.o
CC sound/core/seq/seq_clientmgr.o
CC arch/x86/realmode/rm/regs.o
CC kernel/printk/printk_ringbuffer.o
CC arch/x86/realmode/rm/video-vga.o
CC arch/x86/lib/insn.o
CC fs/notify/inotify/inotify_user.o
CC sound/core/init.o
CC arch/x86/realmode/rm/video-vesa.o
CC fs/quota/quota_v2.o
CC fs/iomap/iter.o
CC arch/x86/realmode/rm/video-bios.o
CC io_uring/rsrc.o
CC init/version.o
CC lib/crypto/mpi/generic_mpih-mul2.o
PASYMS arch/x86/realmode/rm/pasyms.h
CC crypto/asymmetric_keys/public_key.o
CC drivers/leds/led-triggers.o
CC net/ethernet/eth.o
LDS arch/x86/realmode/rm/realmode.lds
LD arch/x86/realmode/rm/realmode.elf
CC fs/notify/fsnotify.o
RELOCS arch/x86/realmode/rm/realmode.relocs
OBJCOPY arch/x86/realmode/rm/realmode.bin
AS arch/x86/realmode/rmpiggy.o
CC io_uring/notif.o
CC lib/zlib_inflate/inftrees.o
AR arch/x86/realmode/built-in.a
CC kernel/locking/rwsem.o
CC arch/x86/pci/pcbios.o
CC arch/x86/kernel/fpu/regset.o
AR security/integrity/built-in.a
CC arch/x86/kernel/fpu/signal.o
CC arch/x86/mm/pat/memtype.o
LDS arch/x86/entry/vdso/vdso32/vdso32.lds
AS arch/x86/entry/vdso/vdso32/note.o
AR init/built-in.a
AS arch/x86/entry/vdso/vdso32/system_call.o
CC block/fops.o
AR fs/nfs_common/built-in.a
CC io_uring/tctx.o
AS arch/x86/entry/vdso/vdso32/sigreturn.o
CC arch/x86/entry/vdso/vdso32/vclock_gettime.o
CC arch/x86/pci/mmconfig_32.o
CC lib/zlib_inflate/inflate_syms.o
AR arch/x86/power/built-in.a
CC arch/x86/pci/direct.o
CC kernel/sched/fair.o
CC kernel/sched/build_policy.o
CC sound/core/memory.o
CC fs/quota/quota_tree.o
CC arch/x86/lib/kaslr.o
CC arch/x86/platform/efi/efi.o
CC lib/zlib_deflate/deflate.o
CC ipc/shm.o
AR block/partitions/built-in.a
CC lib/crypto/mpi/generic_mpih-mul3.o
CC lib/lzo/lzo1x_compress.o
CC lib/lz4/lz4_decompress.o
CC security/keys/keyring.o
CC drivers/pci/msi/pcidev_msi.o
CC drivers/pci/pcie/portdrv.o
AR lib/zlib_inflate/built-in.a
CC security/keys/keyctl.o
CC kernel/irq/irqdesc.o
CC kernel/power/main.o
CC fs/iomap/buffered-io.o
CC arch/x86/lib/memcpy_32.o
ASN.1 crypto/asymmetric_keys/x509.asn1.[ch]
ASN.1 crypto/asymmetric_keys/x509_akid.asn1.[ch]
CC crypto/asymmetric_keys/x509_loader.o
CC arch/x86/events/amd/uncore.o
AS arch/x86/lib/memmove_32.o
CC kernel/sched/build_utility.o
CC sound/core/seq/seq_memory.o
CC arch/x86/lib/misc.o
AR drivers/leds/built-in.a
CC arch/x86/kernel/fpu/xstate.o
AR fs/notify/inotify/built-in.a
CC kernel/irq/handle.o
CC kernel/irq/manage.o
CC arch/x86/lib/pc-conf-reg.o
CC arch/x86/mm/pat/memtype_interval.o
CC block/bio.o
CC arch/x86/entry/vdso/vdso32/vgetcpu.o
CC arch/x86/events/core.o
CC crypto/asymmetric_keys/x509_public_key.o
CC mm/oom_kill.o
CC kernel/locking/percpu-rwsem.o
CC arch/x86/pci/mmconfig-shared.o
HOSTCC arch/x86/entry/vdso/vdso2c
AS arch/x86/lib/putuser.o
CC fs/notify/notification.o
CC arch/x86/entry/vdso/vdso32-setup.o
CC arch/x86/pci/fixup.o
AS arch/x86/lib/retpoline.o
CC arch/x86/lib/string_32.o
CC mm/fadvise.o
CC lib/lzo/lzo1x_decompress_safe.o
CC mm/maccess.o
CC arch/x86/lib/strstr_32.o
CC lib/crypto/mpi/generic_mpih-rshift.o
CC arch/x86/mm/init.o
CC arch/x86/lib/usercopy.o
CC security/lsm_syscalls.o
CC drivers/pci/msi/api.o
CC fs/proc/task_mmu.o
CC crypto/cipher.o
CC arch/x86/events/intel/bts.o
CC arch/x86/pci/acpi.o
CC lib/zlib_deflate/deftree.o
AR net/ethernet/built-in.a
CC drivers/pci/pcie/rcec.o
CC fs/quota/quota.o
CC fs/kernfs/mount.o
CC lib/crypto/utils.o
VDSO arch/x86/entry/vdso/vdso32.so.dbg
CC arch/x86/lib/usercopy_32.o
OBJCOPY arch/x86/entry/vdso/vdso32.so
VDSO2C arch/x86/entry/vdso/vdso-image-32.c
CC arch/x86/entry/vdso/vdso-image-32.o
CC arch/x86/platform/efi/efi_32.o
AR arch/x86/mm/pat/built-in.a
CC io_uring/filetable.o
ASN.1 crypto/asymmetric_keys/pkcs7.asn1.[ch]
CC crypto/asymmetric_keys/pkcs7_trust.o
CC kernel/locking/spinlock.o
AR lib/lzo/built-in.a
CC sound/core/seq/seq_queue.o
CC arch/x86/events/probe.o
CC fs/notify/group.o
CC lib/crypto/mpi/generic_mpih-sub1.o
CC kernel/power/console.o
CC fs/proc/inode.o
AR arch/x86/entry/vdso/built-in.a
CC arch/x86/lib/msr-smp.o
AS arch/x86/entry/entry_32.o
CC ipc/syscall.o
AR sound/i2c/other/built-in.a
CC arch/x86/entry/syscall_32.o
AR sound/i2c/built-in.a
CC lib/crypto/chacha.o
CC arch/x86/events/utils.o
CC fs/quota/kqid.o
CC kernel/printk/sysctl.o
CC security/keys/permission.o
AR arch/x86/events/amd/built-in.a
CC net/core/request_sock.o
CC sound/core/seq/seq_fifo.o
AR net/802/built-in.a
AR lib/lz4/built-in.a
CC fs/kernfs/inode.o
CC drivers/pci/pcie/bwctrl.o
CC arch/x86/events/intel/ds.o
CC crypto/asymmetric_keys/pkcs7_verify.o
AS arch/x86/platform/efi/efi_stub_32.o
CC drivers/pci/msi/msi.o
CC arch/x86/entry/common.o
CC kernel/locking/osq_lock.o
CC lib/zlib_deflate/deflate_syms.o
CC kernel/power/process.o
CC kernel/rcu/update.o
CC crypto/compress.o
CC fs/iomap/direct-io.o
AR arch/x86/kernel/fpu/built-in.a
CC kernel/rcu/sync.o
CC arch/x86/kernel/cpu/mce/core.o
CC arch/x86/lib/cache-smp.o
CC arch/x86/mm/init_32.o
CC arch/x86/kernel/cpu/mtrr/mtrr.o
CC arch/x86/pci/legacy.o
CC kernel/locking/qspinlock.o
AR kernel/printk/built-in.a
CC kernel/irq/spurious.o
CC arch/x86/kernel/cpu/microcode/core.o
CC arch/x86/lib/crc32-glue.o
CC arch/x86/platform/efi/runtime-map.o
AS arch/x86/entry/thunk.o
CC net/sched/sch_generic.o
AR drivers/pci/pwrctrl/built-in.a
CC fs/quota/netlink.o
CC fs/iomap/fiemap.o
CC lib/crypto/mpi/generic_mpih-add1.o
AR lib/zlib_deflate/built-in.a
CC net/sched/sch_mq.o
CC fs/notify/mark.o
CC crypto/asymmetric_keys/x509.asn1.o
CC arch/x86/kernel/acpi/boot.o
CC arch/x86/kernel/cpu/cacheinfo.o
CC crypto/asymmetric_keys/x509_akid.asn1.o
CC arch/x86/kernel/apic/apic.o
CC arch/x86/kernel/cpu/scattered.o
CC crypto/asymmetric_keys/x509_cert_parser.o
CC block/elevator.o
CC sound/core/seq/seq_prioq.o
CC ipc/ipc_sysctl.o
CC ipc/mqueue.o
CC arch/x86/kernel/acpi/sleep.o
CC security/keys/process_keys.o
CC mm/page-writeback.o
AS arch/x86/lib/crc32-pclmul.o
AS arch/x86/kernel/acpi/wakeup_32.o
CC arch/x86/lib/msr.o
CC drivers/pci/pcie/aspm.o
CC security/keys/request_key.o
CC security/keys/request_key_auth.o
CC kernel/locking/rtmutex_api.o
CC fs/kernfs/dir.o
CC io_uring/rw.o
CC drivers/pci/msi/irqdomain.o
CC kernel/irq/resend.o
CC mm/folio-compat.o
CC arch/x86/pci/irq.o
CC arch/x86/events/rapl.o
CC net/core/skbuff.o
AR arch/x86/entry/built-in.a
CC lib/crypto/mpi/mpicoder.o
CC net/netlink/af_netlink.o
CC arch/x86/kernel/cpu/mtrr/if.o
CC arch/x86/kernel/cpu/microcode/intel.o
CC arch/x86/kernel/cpu/mtrr/generic.o
CC net/sched/sch_frag.o
AR arch/x86/platform/efi/built-in.a
AR arch/x86/platform/geode/built-in.a
CC kernel/power/suspend.o
AR arch/x86/platform/iris/built-in.a
CC kernel/power/hibernate.o
CC arch/x86/platform/intel/iosf_mbi.o
CC crypto/asymmetric_keys/pkcs7.asn1.o
CC fs/proc/root.o
CC mm/readahead.o
CC security/selinux/selinuxfs.o
CC crypto/asymmetric_keys/pkcs7_parser.o
AR fs/quota/built-in.a
CC kernel/locking/qrwlock.o
CC arch/x86/mm/fault.o
CC fs/iomap/seek.o
CC kernel/irq/chip.o
CC sound/core/seq/seq_timer.o
CC arch/x86/kernel/acpi/cstate.o
CC fs/notify/fdinfo.o
CC arch/x86/kernel/kprobes/core.o
CC net/netlink/genetlink.o
CC fs/proc/base.o
AS arch/x86/lib/msr-reg.o
CC kernel/power/snapshot.o
CC arch/x86/lib/msr-reg-export.o
AR drivers/pci/msi/built-in.a
CC kernel/rcu/srcutree.o
CC arch/x86/events/msr.o
CC fs/iomap/swapfile.o
CC lib/crypto/mpi/mpi-add.o
CC arch/x86/mm/ioremap.o
CC lib/zstd/zstd_decompress_module.o
AR crypto/asymmetric_keys/built-in.a
CC crypto/algapi.o
CC drivers/pci/pcie/pme.o
CC block/blk-core.o
CC security/keys/user_defined.o
AR kernel/locking/built-in.a
CC block/blk-sysfs.o
AS arch/x86/lib/hweight.o
CC arch/x86/kernel/cpu/microcode/amd.o
CC arch/x86/lib/iomem.o
CC arch/x86/events/intel/knc.o
AR arch/x86/platform/intel/built-in.a
CC lib/crypto/mpi/mpi-bit.o
AR arch/x86/platform/intel-mid/built-in.a
AR arch/x86/platform/intel-quark/built-in.a
AR arch/x86/kernel/acpi/built-in.a
CC arch/x86/kernel/cpu/topology_common.o
AR arch/x86/platform/olpc/built-in.a
CC arch/x86/kernel/kprobes/opt.o
AR arch/x86/platform/scx200/built-in.a
AR arch/x86/platform/ts5500/built-in.a
AR arch/x86/platform/uv/built-in.a
AR arch/x86/platform/built-in.a
CC arch/x86/kernel/cpu/mce/severity.o
AR fs/notify/built-in.a
CC arch/x86/kernel/cpu/mce/genpool.o
CC security/min_addr.o
CC fs/kernfs/file.o
CC sound/core/seq/seq_system.o
CC arch/x86/pci/common.o
CC drivers/video/console/dummycon.o
CC lib/zstd/decompress/huf_decompress.o
CC drivers/video/backlight/backlight.o
CC arch/x86/kernel/cpu/mtrr/cleanup.o
CC ipc/namespace.o
CC crypto/scatterwalk.o
CC arch/x86/lib/atomic64_32.o
CC kernel/irq/dummychip.o
CC arch/x86/kernel/apic/apic_common.o
AR drivers/video/fbdev/core/built-in.a
CC io_uring/net.o
AR drivers/video/fbdev/omap/built-in.a
CC arch/x86/lib/inat.o
AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a
AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a
AR drivers/video/fbdev/omap2/omapfb/built-in.a
AR arch/x86/lib/built-in.a
AR drivers/video/fbdev/omap2/built-in.a
CC drivers/video/console/vgacon.o
CC security/keys/proc.o
AR drivers/video/fbdev/built-in.a
AR sound/drivers/opl3/built-in.a
CC fs/sysfs/file.o
AR sound/drivers/opl4/built-in.a
CC fs/devpts/inode.o
AR sound/drivers/mpu401/built-in.a
AR fs/iomap/built-in.a
CC kernel/power/swap.o
AR sound/drivers/vx/built-in.a
CC net/sched/sch_api.o
AR sound/drivers/pcsp/built-in.a
CC fs/sysfs/dir.o
AR sound/drivers/built-in.a
CC kernel/power/user.o
CC mm/swap.o
AR arch/x86/lib/lib.a
CC lib/crypto/mpi/mpi-cmp.o
CC net/sched/sch_blackhole.o
CC fs/sysfs/symlink.o
CC ipc/mq_sysctl.o
CC arch/x86/mm/extable.o
AR drivers/pci/pcie/built-in.a
CC io_uring/poll.o
CC drivers/pci/hotplug/pci_hotplug_core.o
LDS arch/x86/kernel/vmlinux.lds
CC sound/core/control.o
CC arch/x86/kernel/cpu/topology_ext.o
CC sound/core/seq/seq_ports.o
CC arch/x86/events/intel/lbr.o
CC lib/xz/xz_dec_syms.o
CC lib/crypto/aes.o
CC kernel/irq/devres.o
CC arch/x86/kernel/apic/apic_noop.o
CC sound/core/misc.o
CC lib/xz/xz_dec_stream.o
AR drivers/idle/built-in.a
CC drivers/pci/hotplug/acpi_pcihp.o
AR arch/x86/kernel/kprobes/built-in.a
CC kernel/rcu/tree.o
CC arch/x86/kernel/cpu/topology_amd.o
AR arch/x86/kernel/cpu/microcode/built-in.a
CC lib/xz/xz_dec_lzma2.o
AR ipc/built-in.a
CC fs/proc/generic.o
CC fs/netfs/buffered_read.o
CC arch/x86/kernel/cpu/mtrr/amd.o
CC arch/x86/kernel/cpu/mce/intel.o
CC arch/x86/kernel/cpu/mtrr/cyrix.o
CC crypto/proc.o
CC arch/x86/pci/early.o
CC security/selinux/netlink.o
AR drivers/video/backlight/built-in.a
CC crypto/aead.o
CC lib/crypto/mpi/mpi-sub-ui.o
CC security/keys/sysctl.o
CC fs/netfs/buffered_write.o
CC crypto/geniv.o
CC arch/x86/kernel/cpu/mtrr/centaur.o
CC fs/kernfs/symlink.o
AR fs/devpts/built-in.a
CC net/sched/cls_api.o
CC arch/x86/kernel/apic/ipi.o
CC mm/truncate.o
CC block/blk-flush.o
CC fs/sysfs/mount.o
CC kernel/irq/kexec.o
CC fs/sysfs/group.o
AR kernel/sched/built-in.a
CC block/blk-settings.o
CC arch/x86/kernel/cpu/mtrr/legacy.o
CC sound/core/device.o
AR drivers/char/ipmi/built-in.a
AS arch/x86/kernel/head_32.o
AR drivers/pci/controller/dwc/built-in.a
AR drivers/pci/controller/mobiveil/built-in.a
AR drivers/pci/switch/built-in.a
AR drivers/pci/controller/plda/built-in.a
CC lib/zstd/decompress/zstd_ddict.o
AR drivers/pci/controller/built-in.a
AR drivers/video/console/built-in.a
CC drivers/video/aperture.o
CC net/netlink/policy.o
CC lib/crypto/arc4.o
AR sound/isa/ad1816a/built-in.a
CC arch/x86/mm/mmap.o
CC drivers/acpi/acpica/dsargs.o
AR sound/isa/ad1848/built-in.a
CC drivers/video/cmdline.o
AR sound/isa/cs423x/built-in.a
AR sound/isa/es1688/built-in.a
CC sound/core/seq/seq_info.o
AR sound/isa/galaxy/built-in.a
AR sound/isa/gus/built-in.a
CC arch/x86/pci/bus_numa.o
AR sound/isa/msnd/built-in.a
AR sound/isa/opti9xx/built-in.a
CC lib/zstd/decompress/zstd_decompress.o
AR sound/pci/ac97/built-in.a
CC block/blk-ioc.o
AR sound/isa/sb/built-in.a
AR drivers/pci/hotplug/built-in.a
AR sound/pci/ali5451/built-in.a
AR sound/isa/wavefront/built-in.a
CC drivers/pci/access.o
AR sound/pci/asihpi/built-in.a
AR sound/isa/wss/built-in.a
AR net/bpf/built-in.a
AR sound/isa/built-in.a
AR sound/pci/au88x0/built-in.a
CC arch/x86/kernel/apic/vector.o
AR sound/pci/aw2/built-in.a
CC arch/x86/kernel/cpu/mce/amd.o
CC arch/x86/kernel/cpu/mce/threshold.o
AR sound/pci/ctxfi/built-in.a
CC fs/ext4/balloc.o
AR sound/pci/ca0106/built-in.a
CC security/keys/keyctl_pkey.o
CC lib/xz/xz_dec_bcj.o
CC arch/x86/kernel/cpu/common.o
AR sound/pci/cs46xx/built-in.a
AR sound/pci/cs5535audio/built-in.a
AR sound/pci/lola/built-in.a
CC lib/crypto/mpi/mpi-div.o
AR sound/pci/lx6464es/built-in.a
CC kernel/irq/autoprobe.o
CC kernel/rcu/rcu_segcblist.o
AR arch/x86/kernel/cpu/mtrr/built-in.a
AR sound/pci/echoaudio/built-in.a
AR sound/pci/emu10k1/built-in.a
CC net/ethtool/ioctl.o
CC sound/pci/hda/hda_bind.o
CC fs/proc/array.o
CC kernel/power/poweroff.o
CC security/selinux/nlmsgtab.o
AR sound/pci/ice1712/built-in.a
CC net/core/datagram.o
CC block/blk-map.o
CC sound/pci/hda/hda_codec.o
CC drivers/acpi/acpica/dscontrol.o
CC arch/x86/events/intel/p4.o
AR fs/kernfs/built-in.a
CC drivers/pnp/pnpacpi/core.o
AR drivers/amba/built-in.a
CC lib/zstd/decompress/zstd_decompress_block.o
CC drivers/pci/bus.o
CC arch/x86/pci/amd_bus.o
CC crypto/lskcipher.o
AR kernel/power/built-in.a
CC lib/crypto/mpi/mpi-mod.o
CC sound/core/seq/seq_dummy.o
AR fs/sysfs/built-in.a
CC io_uring/eventfd.o
CC arch/x86/kernel/cpu/rdrand.o
CC sound/core/info.o
CC arch/x86/mm/pgtable.o
CC fs/ext4/bitmap.o
AR lib/xz/built-in.a
CC sound/core/isadma.o
CC fs/proc/fd.o
CC drivers/video/nomodeset.o
CC drivers/pci/probe.o
CC drivers/pnp/core.o
CC arch/x86/mm/physaddr.o
CC fs/netfs/direct_read.o
CC kernel/irq/irqdomain.o
CC arch/x86/mm/tlb.o
CC drivers/pnp/pnpacpi/rsparser.o
CC arch/x86/kernel/head32.o
CC drivers/acpi/acpica/dsdebug.o
AR kernel/livepatch/built-in.a
CC lib/zstd/zstd_common_module.o
AR security/keys/built-in.a
CC sound/core/vmaster.o
CC drivers/pnp/card.o
CC mm/vmscan.o
CC lib/dim/dim.o
AR net/netlink/built-in.a
AR sound/ppc/built-in.a
CC fs/jbd2/transaction.o
CC fs/jbd2/commit.o
AR drivers/clk/actions/built-in.a
CC net/sched/act_api.o
AR drivers/clk/analogbits/built-in.a
AR drivers/clk/bcm/built-in.a
AR drivers/clk/imgtec/built-in.a
CC arch/x86/mm/cpu_entry_area.o
AR drivers/clk/imx/built-in.a
CC drivers/video/hdmi.o
AR drivers/clk/ingenic/built-in.a
CC drivers/pnp/driver.o
AR drivers/clk/mediatek/built-in.a
AR drivers/clk/microchip/built-in.a
AR drivers/clk/mstar/built-in.a
AR drivers/clk/mvebu/built-in.a
CC lib/crypto/mpi/mpi-mul.o
CC drivers/pci/host-bridge.o
CC drivers/acpi/acpica/dsfield.o
AR sound/core/seq/built-in.a
AR drivers/clk/ralink/built-in.a
CC net/ethtool/common.o
AR drivers/clk/renesas/built-in.a
AR drivers/clk/socfpga/built-in.a
AR drivers/clk/sophgo/built-in.a
CC sound/core/ctljack.o
AR drivers/clk/sprd/built-in.a
CC security/security.o
AR drivers/clk/starfive/built-in.a
AR drivers/clk/sunxi-ng/built-in.a
AR drivers/clk/ti/built-in.a
AR drivers/clk/versatile/built-in.a
CC kernel/irq/proc.o
AR arch/x86/pci/built-in.a
AR drivers/clk/xilinx/built-in.a
CC net/ethtool/netlink.o
AR drivers/clk/built-in.a
CC lib/dim/net_dim.o
CC block/blk-merge.o
CC io_uring/uring_cmd.o
CC arch/x86/kernel/apic/init.o
CC security/selinux/netif.o
CC drivers/acpi/acpica/dsinit.o
CC kernel/dma/mapping.o
CC arch/x86/events/intel/p6.o
CC mm/shrinker.o
CC net/ethtool/bitset.o
CC io_uring/openclose.o
CC fs/jbd2/recovery.o
CC sound/pci/hda/hda_jack.o
CC arch/x86/kernel/cpu/match.o
CC crypto/skcipher.o
AR arch/x86/kernel/cpu/mce/built-in.a
CC fs/netfs/direct_write.o
AR sound/arm/built-in.a
CC sound/core/jack.o
CC fs/proc/proc_tty.o
CC block/blk-timeout.o
CC fs/ramfs/inode.o
CC drivers/pci/remove.o
CC drivers/dma/dw/core.o
CC fs/ext4/block_validity.o
CC drivers/acpi/acpica/dsmethod.o
CC drivers/dma/hsu/hsu.o
CC fs/proc/cmdline.o
AR drivers/pnp/pnpacpi/built-in.a
CC lib/crypto/mpi/mpih-cmp.o
CC drivers/pnp/resource.o
CC arch/x86/kernel/apic/hw_nmi.o
CC io_uring/sqpoll.o
CC arch/x86/mm/maccess.o
AR drivers/video/built-in.a
CC arch/x86/events/intel/pt.o
CC net/netfilter/core.o
CC arch/x86/kernel/cpu/bugs.o
CC arch/x86/kernel/cpu/aperfmperf.o
CC kernel/irq/migration.o
CC net/netfilter/nf_log.o
CC arch/x86/mm/pgprot.o
CC arch/x86/kernel/ebda.o
CC drivers/acpi/acpica/dsmthdat.o
CC net/sched/sch_fifo.o
AR drivers/acpi/pmic/built-in.a
CC lib/dim/rdma_dim.o
CC crypto/seqiv.o
CC fs/ext4/dir.o
CC fs/proc/consoles.o
AR sound/sh/built-in.a
CC net/ethtool/strset.o
AR drivers/soc/apple/built-in.a
CC sound/core/hwdep.o
AR drivers/soc/aspeed/built-in.a
CC lib/fonts/fonts.o
CC lib/crypto/mpi/mpih-div.o
AR drivers/soc/bcm/built-in.a
CC fs/ramfs/file-mmu.o
AR drivers/soc/fsl/built-in.a
AR drivers/soc/fujitsu/built-in.a
CC kernel/irq/cpuhotplug.o
CC drivers/pci/pci.o
AR drivers/soc/hisilicon/built-in.a
CC arch/x86/kernel/apic/io_apic.o
AR drivers/soc/imx/built-in.a
AR drivers/soc/ixp4xx/built-in.a
CC lib/argv_split.o
CC lib/zstd/common/debug.o
AR drivers/soc/loongson/built-in.a
CC fs/netfs/iterator.o
AR drivers/soc/mediatek/built-in.a
CC fs/netfs/locking.o
AR sound/synth/emux/built-in.a
CC fs/jbd2/checkpoint.o
CC security/selinux/netnode.o
CC drivers/acpi/dptf/int340x_thermal.o
AR sound/synth/built-in.a
AR drivers/soc/microchip/built-in.a
CC security/lsm_audit.o
AR drivers/soc/nuvoton/built-in.a
CC net/core/stream.o
CC fs/jbd2/revoke.o
AR drivers/soc/pxa/built-in.a
AR drivers/soc/amlogic/built-in.a
AR drivers/soc/qcom/built-in.a
CC fs/jbd2/journal.o
AR drivers/soc/renesas/built-in.a
AR drivers/soc/rockchip/built-in.a
AR drivers/dma/hsu/built-in.a
AR drivers/soc/sunxi/built-in.a
CC drivers/acpi/acpica/dsobject.o
CC sound/pci/hda/hda_auto_parser.o
CC sound/core/timer.o
AR drivers/soc/ti/built-in.a
CC drivers/acpi/acpica/dsopcode.o
AR drivers/soc/versatile/built-in.a
AR drivers/soc/xilinx/built-in.a
AR drivers/soc/built-in.a
AR lib/dim/built-in.a
CC fs/hugetlbfs/inode.o
CC fs/isofs/namei.o
CC fs/fat/cache.o
CC kernel/irq/pm.o
CC arch/x86/mm/pgtable_32.o
CC net/netfilter/nf_queue.o
CC arch/x86/kernel/apic/msi.o
CC lib/fonts/font_8x16.o
CC block/blk-lib.o
CC drivers/pnp/manager.o
CC arch/x86/kernel/apic/probe_32.o
CC lib/zstd/common/entropy_common.o
CC drivers/dma/dw/dw.o
CC fs/proc/cpuinfo.o
CC mm/shmem.o
AR drivers/acpi/dptf/built-in.a
CC crypto/echainiv.o
CC drivers/virtio/virtio.o
CC fs/isofs/inode.o
CC arch/x86/events/intel/uncore.o
CC lib/zstd/common/error_private.o
CC drivers/acpi/acpica/dspkginit.o
CC lib/zstd/common/fse_decompress.o
CC arch/x86/kernel/cpu/cpuid-deps.o
AR lib/fonts/built-in.a
CC net/ipv4/netfilter/nf_defrag_ipv4.o
AR fs/ramfs/built-in.a
CC net/ipv4/route.o
CC lib/crypto/gf128mul.o
AR kernel/rcu/built-in.a
AR sound/pci/korg1212/built-in.a
CC net/sched/cls_cgroup.o
CC lib/crypto/mpi/mpih-mul.o
CC lib/zstd/common/zstd_common.o
CC drivers/acpi/x86/apple.o
CC fs/ext4/ext4_jbd2.o
CC sound/core/hrtimer.o
CC lib/crypto/mpi/mpi-pow.o
CC lib/bug.o
CC lib/crypto/mpi/mpiutil.o
CC net/ipv4/inetpeer.o
CC arch/x86/mm/iomap_32.o
CC arch/x86/events/intel/uncore_nhmex.o
CC fs/netfs/main.o
CC io_uring/xattr.o
CC fs/ext4/extents.o
CC kernel/irq/msi.o
CC fs/proc/devices.o
CC security/selinux/netport.o
CC drivers/acpi/x86/cmos_rtc.o
CC drivers/virtio/virtio_ring.o
CC net/ethtool/linkinfo.o
CC drivers/pnp/support.o
CC drivers/dma/dw/idma32.o
CC drivers/acpi/acpica/dsutils.o
CC fs/fat/dir.o
CC arch/x86/kernel/cpu/umwait.o
CC kernel/dma/direct.o
CC block/blk-mq.o
CC crypto/ahash.o
AR lib/zstd/built-in.a
CC net/core/scm.o
MKCAP arch/x86/kernel/cpu/capflags.c
CC kernel/dma/ops_helpers.o
CC fs/fat/fatent.o
CC sound/pci/hda/hda_sysfs.o
CC sound/pci/hda/hda_controller.o
CC sound/pci/hda/hda_proc.o
CC arch/x86/kernel/cpu/powerflags.o
CC arch/x86/kernel/cpu/topology.o
CC drivers/virtio/virtio_anchor.o
CC arch/x86/mm/hugetlbpage.o
CC drivers/acpi/acpica/dswexec.o
CC drivers/acpi/x86/lpss.o
CC net/netfilter/nf_sockopt.o
CC net/core/gen_stats.o
CC sound/core/pcm.o
CC drivers/pci/pci-driver.o
CC drivers/pnp/interface.o
CC arch/x86/kernel/cpu/proc.o
CC fs/proc/interrupts.o
AR lib/crypto/mpi/built-in.a
CC drivers/tty/vt/vt_ioctl.o
CC lib/crypto/blake2s.o
CC drivers/char/hw_random/core.o
CC drivers/dma/dw/acpi.o
AR arch/x86/kernel/apic/built-in.a
AR drivers/iommu/amd/built-in.a
AR fs/hugetlbfs/built-in.a
CC io_uring/nop.o
AR drivers/iommu/intel/built-in.a
CC io_uring/fs.o
CC fs/isofs/dir.o
AR drivers/iommu/arm/arm-smmu/built-in.a
AR drivers/iommu/arm/arm-smmu-v3/built-in.a
CC drivers/tty/vt/vc_screen.o
CC drivers/acpi/x86/s2idle.o
AR drivers/iommu/arm/built-in.a
CC net/sched/ematch.o
AR drivers/iommu/iommufd/built-in.a
AR drivers/iommu/riscv/built-in.a
CC drivers/iommu/iommu.o
CC net/ipv4/netfilter/nf_reject_ipv4.o
CC drivers/acpi/acpica/dswload.o
AR drivers/gpu/host1x/built-in.a
CC drivers/connector/cn_queue.o
CC net/ethtool/linkmodes.o
CC sound/core/pcm_native.o
CC drivers/base/power/sysfs.o
CC kernel/dma/remap.o
CC lib/crypto/blake2s-generic.o
CC net/xfrm/xfrm_policy.o
CC kernel/irq/affinity.o
CC security/selinux/status.o
AR drivers/gpu/drm/tests/built-in.a
CC arch/x86/mm/dump_pagetables.o
CC fs/proc/loadavg.o
AR drivers/gpu/drm/arm/built-in.a
AR drivers/gpu/drm/clients/built-in.a
CC drivers/gpu/drm/display/drm_display_helper_mod.o
CC arch/x86/events/intel/uncore_snb.o
CC crypto/shash.o
CC drivers/pnp/quirks.o
AR drivers/dma/idxd/built-in.a
CC arch/x86/mm/highmem_32.o
CC drivers/tty/hvc/hvc_console.o
CC drivers/char/hw_random/intel-rng.o
CC net/xfrm/xfrm_state.o
CC drivers/acpi/acpica/dswload2.o
AR drivers/dma/dw/built-in.a
AR drivers/dma/amd/built-in.a
AR drivers/dma/mediatek/built-in.a
CC net/ipv4/netfilter/ip_tables.o
CC lib/crypto/sha1.o
AR drivers/dma/qcom/built-in.a
AR drivers/dma/stm32/built-in.a
AR drivers/dma/ti/built-in.a
CC fs/fat/file.o
AR drivers/dma/xilinx/built-in.a
CC net/netfilter/utils.o
CC drivers/dma/dmaengine.o
CC fs/netfs/misc.o
CC fs/fat/inode.o
CC fs/fat/misc.o
CC fs/isofs/util.o
CC drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
AR fs/jbd2/built-in.a
CC fs/proc/meminfo.o
CC fs/proc/stat.o
CC drivers/dma/virt-dma.o
CC kernel/irq/matrix.o
CC net/core/gen_estimator.o
CC drivers/base/power/generic_ops.o
AR kernel/dma/built-in.a
CC arch/x86/events/intel/uncore_snbep.o
CC io_uring/splice.o
CC fs/netfs/objects.o
CC sound/pci/hda/hda_hwdep.o
CC drivers/acpi/x86/utils.o
CC drivers/acpi/x86/blacklist.o
CC drivers/tty/vt/selection.o
CC crypto/akcipher.o
CC drivers/acpi/acpica/dswscope.o
CC drivers/virtio/virtio_pci_modern_dev.o
CC drivers/pci/search.o
CC lib/crypto/sha256.o
AR net/sched/built-in.a
CC mm/util.o
CC drivers/block/loop.o
AR sound/usb/misc/built-in.a
AR sound/usb/usx2y/built-in.a
AR sound/usb/caiaq/built-in.a
CC drivers/char/hw_random/amd-rng.o
AR arch/x86/mm/built-in.a
AR sound/usb/6fire/built-in.a
CC drivers/iommu/iommu-traces.o
AR sound/usb/hiface/built-in.a
AR sound/usb/bcd2000/built-in.a
AR sound/usb/built-in.a
CC drivers/pnp/system.o
CC drivers/connector/connector.o
CC arch/x86/kernel/cpu/feat_ctl.o
CC net/ethtool/rss.o
CC drivers/base/power/common.o
AR drivers/tty/hvc/built-in.a
CC io_uring/sync.o
CC security/selinux/ss/ebitmap.o
CC fs/isofs/rock.o
CC drivers/acpi/acpica/dswstate.o
CC drivers/acpi/acpica/evevent.o
CC block/blk-mq-tag.o
CC net/ipv4/netfilter/iptable_filter.o
CC drivers/tty/vt/keyboard.o
CC block/blk-stat.o
CC fs/proc/uptime.o
CC drivers/block/virtio_blk.o
CC net/netfilter/nfnetlink.o
CC drivers/gpu/drm/display/drm_dp_helper.o
CC sound/pci/hda/hda_intel.o
AR drivers/acpi/x86/built-in.a
CC arch/x86/kernel/cpu/intel.o
CC sound/core/pcm_lib.o
CC net/ethtool/linkstate.o
AR lib/crypto/built-in.a
CC lib/buildid.o
CC sound/core/pcm_misc.o
CC net/netfilter/nfnetlink_log.o
CC lib/clz_tab.o
AR drivers/pnp/built-in.a
CC drivers/base/power/qos.o
CC arch/x86/kernel/platform-quirks.o
CC net/core/net_namespace.o
CC drivers/dma/acpi-dma.o
CC crypto/sig.o
CC drivers/virtio/virtio_pci_legacy_dev.o
CC drivers/pci/rom.o
CC drivers/acpi/acpica/evgpe.o
AR sound/firewire/built-in.a
CC drivers/tty/vt/vt.o
CC fs/netfs/read_collect.o
CC drivers/gpu/drm/display/drm_dp_mst_topology.o
CC drivers/char/hw_random/geode-rng.o
CC fs/ext4/extents_status.o
AR kernel/irq/built-in.a
CC security/selinux/ss/hashtab.o
CC drivers/tty/serial/8250/8250_core.o
CC kernel/entry/common.o
CC fs/proc/util.o
CC fs/fat/nfs.o
CC io_uring/msg_ring.o
CC drivers/iommu/iommu-sysfs.o
CC drivers/iommu/dma-iommu.o
CC fs/fat/namei_vfat.o
CC security/device_cgroup.o
CC fs/isofs/export.o
CC mm/mmzone.o
CC drivers/gpu/drm/ttm/ttm_tt.o
CC drivers/acpi/acpica/evgpeblk.o
CC drivers/connector/cn_proc.o
CC drivers/gpu/drm/i915/i915_config.o
CC drivers/gpu/drm/ttm/ttm_bo.o
CC lib/cmdline.o
AR drivers/tty/ipwireless/built-in.a
CC drivers/gpu/drm/ttm/ttm_bo_util.o
CC net/ipv4/protocol.o
CC drivers/pci/setup-res.o
CC net/ipv4/netfilter/iptable_mangle.o
CC drivers/virtio/virtio_pci_modern.o
AR drivers/dma/built-in.a
CC net/unix/af_unix.o
CC lib/cpumask.o
CC drivers/char/hw_random/via-rng.o
CC security/selinux/ss/symtab.o
AR drivers/gpu/drm/renesas/rcar-du/built-in.a
AR drivers/gpu/drm/renesas/rz-du/built-in.a
AR drivers/gpu/drm/renesas/built-in.a
CC drivers/base/power/runtime.o
CC crypto/kpp.o
CC fs/proc/version.o
CC drivers/gpu/drm/i915/i915_driver.o
CC drivers/base/firmware_loader/builtin/main.o
CC block/blk-mq-sysfs.o
CC net/ethtool/debug.o
AR drivers/block/built-in.a
CC drivers/base/firmware_loader/main.o
CC drivers/acpi/acpica/evgpeinit.o
CC net/netfilter/nf_conntrack_core.o
CC security/selinux/ss/sidtab.o
CC mm/vmstat.o
CC drivers/base/regmap/regmap.o
CC io_uring/advise.o
CC drivers/base/regmap/regcache.o
CC drivers/base/regmap/regcache-rbtree.o
CC fs/isofs/joliet.o
AR drivers/char/hw_random/built-in.a
CC drivers/char/agp/backend.o
CC drivers/tty/serial/8250/8250_platform.o
AR drivers/base/firmware_loader/builtin/built-in.a
CC fs/isofs/compress.o
CC drivers/base/regmap/regcache-flat.o
CC net/unix/garbage.o
CC kernel/entry/syscall_user_dispatch.o
CC arch/x86/events/intel/uncore_discovery.o
CC fs/netfs/read_pgpriv2.o
CC drivers/acpi/acpica/evgpeutil.o
CC fs/proc/softirqs.o
CC lib/ctype.o
CC drivers/gpu/drm/i915/i915_drm_client.o
CC lib/dec_and_lock.o
CC drivers/virtio/virtio_pci_common.o
CC net/core/secure_seq.o
AR sound/pci/hda/built-in.a
AR sound/pci/mixart/built-in.a
AR sound/pci/nm256/built-in.a
CC drivers/pci/irq.o
AR sound/pci/oxygen/built-in.a
AR sound/pci/pcxhr/built-in.a
AR sound/pci/riptide/built-in.a
AR sound/pci/rme9652/built-in.a
AR sound/pci/trident/built-in.a
AR sound/pci/ymfpci/built-in.a
CC sound/core/pcm_memory.o
AR sound/pci/vx222/built-in.a
AR sound/pci/built-in.a
CC mm/backing-dev.o
CC mm/mm_init.o
CC net/xfrm/xfrm_hash.o
CC drivers/gpu/drm/i915/i915_getparam.o
CC lib/decompress.o
CC drivers/char/agp/generic.o
AR drivers/connector/built-in.a
CC block/blk-mq-cpumap.o
ASN.1 crypto/rsapubkey.asn1.[ch]
CC drivers/gpu/drm/ttm/ttm_bo_vm.o
ASN.1 crypto/rsaprivkey.asn1.[ch]
CC crypto/rsa.o
CC fs/fat/namei_msdos.o
CC lib/decompress_bunzip2.o
CC drivers/gpu/drm/ttm/ttm_module.o
CC net/ipv4/netfilter/ipt_REJECT.o
CC drivers/acpi/acpica/evglock.o
CC net/ipv4/ip_input.o
CC drivers/char/mem.o
CC drivers/gpu/drm/ttm/ttm_execbuf_util.o
CC io_uring/epoll.o
CC block/blk-mq-sched.o
CC drivers/misc/eeprom/eeprom_93cx6.o
CC drivers/iommu/iova.o
CC drivers/base/power/wakeirq.o
AR kernel/entry/built-in.a
CC net/ethtool/wol.o
CC kernel/module/main.o
CC arch/x86/kernel/cpu/tsx.o
AR drivers/base/firmware_loader/built-in.a
CC net/ethtool/features.o
CC security/selinux/ss/avtab.o
CC security/selinux/ss/policydb.o
CC drivers/tty/serial/8250/8250_pnp.o
CC fs/proc/namespaces.o
AR fs/isofs/built-in.a
CC fs/proc/self.o
CC drivers/acpi/acpica/evhandler.o
CC drivers/pci/vpd.o
CC fs/netfs/read_retry.o
CC net/xfrm/xfrm_input.o
CC drivers/tty/tty_io.o
CC block/ioctl.o
CC fs/ext4/file.o
AR drivers/misc/eeprom/built-in.a
CC sound/core/memalloc.o
AR drivers/misc/cb710/built-in.a
CC crypto/rsa_helper.o
AR drivers/misc/lis3lv02d/built-in.a
CC arch/x86/events/intel/cstate.o
AR drivers/misc/cardreader/built-in.a
AR drivers/misc/keba/built-in.a
COPY drivers/tty/vt/defkeymap.c
AR drivers/misc/built-in.a
CC drivers/acpi/acpica/evmisc.o
CC drivers/virtio/virtio_pci_legacy.o
CC drivers/gpu/drm/display/drm_dsc_helper.o
CC arch/x86/kernel/cpu/intel_epb.o
CC drivers/base/power/main.o
CC drivers/tty/serial/8250/8250_rsa.o
CC arch/x86/kernel/process_32.o
CC lib/decompress_inflate.o
CC net/core/flow_dissector.o
CC io_uring/statx.o
CC drivers/tty/vt/consolemap.o
CC drivers/gpu/drm/ttm/ttm_range_manager.o
CC fs/ext4/fsmap.o
CC drivers/tty/serial/serial_core.o
AR drivers/mfd/built-in.a
CC fs/ext4/fsync.o
CC drivers/gpu/drm/i915/i915_ioctl.o
AR drivers/gpu/drm/omapdrm/built-in.a
AR drivers/nfc/built-in.a
CC fs/ext4/hash.o
AR fs/fat/built-in.a
CC crypto/rsa-pkcs1pad.o
CC fs/nfs/client.o
CC fs/exportfs/expfs.o
CC fs/ext4/ialloc.o
CC mm/percpu.o
CC net/netfilter/nf_conntrack_standalone.o
CC drivers/char/agp/isoch.o
CC kernel/time/time.o
CC drivers/acpi/acpica/evregion.o
CC [M] net/ipv4/netfilter/iptable_nat.o
AR drivers/iommu/built-in.a
CC arch/x86/kernel/signal.o
CC fs/proc/thread_self.o
CC arch/x86/kernel/cpu/amd.o
AR drivers/gpu/drm/tilcdc/built-in.a
CC drivers/virtio/virtio_pci_admin_legacy_io.o
CC fs/nfs/dir.o
AR drivers/dax/hmem/built-in.a
AR drivers/dax/built-in.a
CC drivers/base/power/wakeup.o
CC net/ethtool/privflags.o
CC lib/decompress_unlz4.o
CC drivers/tty/serial/8250/8250_port.o
CC drivers/pci/setup-bus.o
CC net/ipv4/ip_fragment.o
CC net/ipv6/netfilter/ip6_tables.o
CC fs/netfs/read_single.o
CC net/packet/af_packet.o
CC drivers/gpu/drm/ttm/ttm_resource.o
AR arch/x86/events/intel/built-in.a
AR arch/x86/events/built-in.a
AR net/dsa/built-in.a
CC drivers/pci/vc.o
CC fs/nfs/file.o
AR sound/sparc/built-in.a
CC drivers/acpi/acpica/evrgnini.o
CC net/ipv6/netfilter/ip6table_filter.o
CC io_uring/timeout.o
CC sound/core/pcm_timer.o
CC net/unix/sysctl_net_unix.o
CC io_uring/fdinfo.o
CC block/genhd.o
CC crypto/rsassa-pkcs1.o
CC drivers/gpu/drm/display/drm_hdcp_helper.o
AR fs/exportfs/built-in.a
CC arch/x86/kernel/signal_32.o
CC fs/proc/proc_sysctl.o
CC drivers/gpu/drm/virtio/virtgpu_drv.o
HOSTCC drivers/tty/vt/conmakehash
CC fs/nfs/getroot.o
CC drivers/char/agp/amd64-agp.o
CC lib/decompress_unlzma.o
CC drivers/virtio/virtio_input.o
CC drivers/gpu/drm/i915/i915_irq.o
CC drivers/tty/vt/defkeymap.o
CC drivers/acpi/acpica/evsci.o
CC net/xfrm/xfrm_output.o
CC drivers/base/regmap/regcache-maple.o
CC kernel/time/timer.o
CC drivers/tty/serial/serial_base_bus.o
CC arch/x86/kernel/cpu/hygon.o
CONMK drivers/tty/vt/consolemap_deftbl.c
CC net/netfilter/nf_conntrack_expect.o
CC drivers/tty/vt/consolemap_deftbl.o
AR drivers/tty/vt/built-in.a
CC sound/core/seq_device.o
CC drivers/dma-buf/dma-buf.o
CC drivers/base/power/wakeup_stats.o
CC drivers/gpu/drm/ttm/ttm_pool.o
AR net/ipv4/netfilter/built-in.a
CC net/ipv4/ip_forward.o
CC drivers/acpi/tables.o
CC net/ethtool/rings.o
CC crypto/acompress.o
CC fs/netfs/rolling_buffer.o
CC kernel/module/strict_rwx.o
CC drivers/acpi/acpica/evxface.o
CC drivers/gpu/drm/display/drm_hdmi_helper.o
CC drivers/char/random.o
CC drivers/gpu/drm/display/drm_scdc_helper.o
CC kernel/module/kmod.o
CC net/ethtool/channels.o
CC drivers/gpu/drm/virtio/virtgpu_kms.o
AR net/unix/built-in.a
CC security/selinux/ss/services.o
CC drivers/acpi/acpica/evxfevnt.o
CC drivers/virtio/virtio_dma_buf.o
CC io_uring/cancel.o
CC drivers/char/agp/intel-agp.o
CC arch/x86/kernel/cpu/centaur.o
CC kernel/futex/core.o
CC lib/decompress_unlzo.o
CC net/ipv6/af_inet6.o
CC net/ipv4/ip_options.o
CC drivers/base/power/trace.o
CC fs/proc/proc_net.o
CC drivers/base/regmap/regmap-debugfs.o
CC drivers/gpu/drm/virtio/virtgpu_gem.o
AR sound/core/built-in.a
CC block/ioprio.o
AR sound/spi/built-in.a
CC net/core/sysctl_net_core.o
AR sound/parisc/built-in.a
AR drivers/cxl/core/built-in.a
AR sound/pcmcia/vx/built-in.a
AR drivers/cxl/built-in.a
CC drivers/macintosh/mac_hid.o
AR sound/pcmcia/pdaudiocf/built-in.a
AR drivers/gpu/drm/imx/built-in.a
AR sound/pcmcia/built-in.a
CC arch/x86/kernel/traps.o
AR sound/mips/built-in.a
CC drivers/acpi/acpica/evxfgpe.o
AR sound/soc/built-in.a
AR sound/atmel/built-in.a
CC net/netfilter/nf_conntrack_helper.o
AR sound/x86/built-in.a
CC sound/hda/hda_bus_type.o
CC kernel/module/tree_lookup.o
CC drivers/dma-buf/dma-fence.o
CC drivers/pci/mmap.o
CC fs/ext4/indirect.o
CC arch/x86/kernel/cpu/transmeta.o
CC fs/netfs/write_collect.o
CC crypto/scompress.o
AR drivers/virtio/built-in.a
CC net/ipv6/netfilter/ip6table_mangle.o
AR drivers/base/test/built-in.a
CC io_uring/waitid.o
CC net/ipv6/anycast.o
CC drivers/gpu/drm/i915/i915_mitigations.o
AR drivers/gpu/vga/built-in.a
CC net/ipv4/ip_output.o
AR drivers/gpu/drm/display/built-in.a
CC lib/decompress_unxz.o
CC kernel/cgroup/cgroup.o
CC kernel/cgroup/rstat.o
CC drivers/tty/serial/8250/8250_dma.o
CC mm/slab_common.o
CC drivers/gpu/drm/virtio/virtgpu_vram.o
CC fs/netfs/write_issue.o
CC fs/ext4/inline.o
CC drivers/gpu/drm/i915/i915_module.o
CC fs/netfs/write_retry.o
CC drivers/acpi/acpica/evxfregn.o
CC drivers/char/agp/intel-gtt.o
AR drivers/base/power/built-in.a
CC drivers/gpu/drm/ttm/ttm_device.o
CC arch/x86/kernel/idt.o
AR drivers/macintosh/built-in.a
CC arch/x86/kernel/irq.o
CC net/xfrm/xfrm_sysctl.o
AR drivers/base/regmap/built-in.a
CC arch/x86/kernel/irq_32.o
CC drivers/base/component.o
CC kernel/futex/syscalls.o
CC fs/proc/kcore.o
CC net/ethtool/coalesce.o
CC net/ethtool/pause.o
CC kernel/module/kallsyms.o
CC drivers/base/core.o
CC sound/hda/hdac_bus.o
CC fs/ext4/inode.o
CC arch/x86/kernel/cpu/zhaoxin.o
CC block/badblocks.o
CC drivers/pci/devres.o
CC block/blk-rq-qos.o
CC drivers/acpi/acpica/exconcat.o
CC lib/decompress_unzstd.o
CC kernel/time/hrtimer.o
CC drivers/tty/serial/serial_ctrl.o
CC drivers/gpu/drm/virtio/virtgpu_display.o
CC drivers/tty/serial/8250/8250_dwlib.o
CC drivers/tty/serial/serial_port.o
CC crypto/algboss.o
CC arch/x86/kernel/cpu/vortex.o
CC io_uring/register.o
CC drivers/dma-buf/dma-fence-array.o
CC block/disk-events.o
CC fs/nfs/inode.o
CC net/core/dev.o
CC drivers/tty/n_tty.o
CC drivers/acpi/osi.o
CC drivers/gpu/drm/ttm/ttm_sys_manager.o
CC drivers/acpi/acpica/exconfig.o
CC net/netfilter/nf_conntrack_proto.o
CC kernel/module/procfs.o
CC security/selinux/ss/conditional.o
CC kernel/cgroup/namespace.o
CC net/xfrm/xfrm_replay.o
CC arch/x86/kernel/cpu/perfctr-watchdog.o
CC lib/dump_stack.o
CC kernel/trace/trace_clock.o
CC drivers/gpu/drm/i915/i915_params.o
CC sound/hda/hdac_device.o
CC net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
AR drivers/char/agp/built-in.a
CC kernel/futex/pi.o
CC drivers/char/misc.o
CC fs/proc/vmcore.o
CC kernel/trace/ring_buffer.o
CC net/core/dev_addr_lists.o
AR fs/netfs/built-in.a
CC net/core/dst.o
CC drivers/pci/proc.o
CC drivers/gpu/drm/virtio/virtgpu_vq.o
CC drivers/gpu/drm/virtio/virtgpu_fence.o
CC net/ipv6/netfilter/nf_conntrack_reasm.o
CC kernel/bpf/core.o
CC drivers/char/virtio_console.o
CC drivers/acpi/acpica/exconvrt.o
CC drivers/gpu/drm/ttm/ttm_backup.o
AR net/packet/built-in.a
CC drivers/char/hpet.o
CC drivers/dma-buf/dma-fence-chain.o
CC drivers/dma-buf/dma-fence-unwrap.o
CC drivers/acpi/acpica/excreate.o
CC fs/proc/kmsg.o
CC net/ethtool/eee.o
CC drivers/tty/serial/8250/8250_pcilib.o
CC drivers/base/bus.o
CC net/sunrpc/auth_gss/auth_gss.o
CC kernel/module/sysfs.o
CC net/sunrpc/clnt.o
CC block/blk-ia-ranges.o
CC lib/earlycpio.o
CC arch/x86/kernel/cpu/vmware.o
CC crypto/testmgr.o
CC arch/x86/kernel/dumpstack_32.o
CC drivers/base/dd.o
CC fs/ext4/ioctl.o
CC sound/hda/hdac_sysfs.o
CC lib/extable.o
CC drivers/acpi/acpica/exdebug.o
CC net/core/netevent.o
CC kernel/futex/requeue.o
CC net/ipv4/ip_sockglue.o
CC kernel/time/sleep_timeout.o
CC kernel/events/core.o
CC drivers/dma-buf/dma-resv.o
CC drivers/gpu/drm/i915/i915_pci.o
CC arch/x86/kernel/cpu/hypervisor.o
CC mm/compaction.o
CC drivers/dma-buf/sync_file.o
CC drivers/pci/pci-sysfs.o
CC drivers/gpu/drm/ttm/ttm_agp_backend.o
CC drivers/tty/serial/8250/8250_early.o
CC drivers/acpi/acpica/exdump.o
CC fs/proc/page.o
AR sound/xen/built-in.a
CC security/selinux/ss/mls.o
CC arch/x86/kernel/time.o
CC kernel/trace/trace.o
CC net/xfrm/xfrm_device.o
CC lib/flex_proportions.o
AR kernel/module/built-in.a
CC net/xfrm/xfrm_nat_keepalive.o
CC sound/hda/hdac_regmap.o
CC sound/hda/hdac_controller.o
AR net/wireless/tests/built-in.a
CC crypto/cmac.o
CC net/wireless/core.o
CC block/early-lookup.o
CC kernel/fork.o
CC net/netfilter/nf_conntrack_proto_generic.o
CC net/ipv6/ip6_output.o
CC io_uring/truncate.o
CC net/sunrpc/xprt.o
CC net/ethtool/tsinfo.o
CC kernel/time/timekeeping.o
CC drivers/gpu/drm/virtio/virtgpu_object.o
CC net/sunrpc/auth_gss/gss_mech_switch.o
CC arch/x86/kernel/cpu/mshyperv.o
CC drivers/acpi/acpica/exfield.o
CC kernel/futex/waitwake.o
CC fs/lockd/clntlock.o
CC lib/idr.o
AR sound/virtio/built-in.a
CC arch/x86/kernel/ioport.o
CC net/ipv6/netfilter/nf_reject_ipv6.o
CC drivers/char/nvram.o
CC crypto/hmac.o
CC security/selinux/ss/context.o
CC drivers/tty/serial/8250/8250_exar.o
CC fs/lockd/clntproc.o
CC drivers/base/syscore.o
AR drivers/gpu/drm/ttm/built-in.a
CC drivers/pci/slot.o
CC drivers/gpu/drm/i915/i915_scatterlist.o
AR drivers/dma-buf/built-in.a
CC net/xfrm/xfrm_algo.o
AR fs/proc/built-in.a
CC drivers/tty/serial/earlycon.o
CC net/xfrm/xfrm_user.o
CC drivers/acpi/acpica/exfldio.o
CC block/bounce.o
CC net/netfilter/nf_conntrack_proto_tcp.o
CC lib/iomem_copy.o
CC io_uring/memmap.o
CC sound/hda/hdac_stream.o
CC drivers/gpu/drm/virtio/virtgpu_debugfs.o
CC net/ipv6/ip6_input.o
CC lib/irq_regs.o
CC crypto/crypto_null.o
AR kernel/futex/built-in.a
CC crypto/md5.o
CC kernel/time/ntp.o
CC net/ipv4/inet_hashtables.o
CC net/sunrpc/socklib.o
CC arch/x86/kernel/cpu/debugfs.o
CC drivers/acpi/osl.o
CC drivers/acpi/acpica/exmisc.o
AR drivers/char/built-in.a
CC kernel/trace/trace_output.o
CC fs/ext4/mballoc.o
CC lib/is_single_threaded.o
CC drivers/pci/pci-acpi.o
CC drivers/gpu/drm/i915/i915_switcheroo.o
CC net/ipv4/inet_timewait_sock.o
CC net/ethtool/cabletest.o
CC fs/nfs/super.o
CC security/selinux/netlabel.o
AR net/mac80211/tests/built-in.a
CC net/mac80211/main.o
CC net/ipv4/inet_connection_sock.o
CC drivers/tty/serial/8250/8250_lpss.o
CC net/sunrpc/auth_gss/svcauth_gss.o
CC drivers/base/driver.o
CC kernel/trace/trace_seq.o
CC net/ethtool/tunnels.o
CC drivers/acpi/acpica/exmutex.o
CC kernel/events/ring_buffer.o
CC lib/klist.o
AR kernel/bpf/built-in.a
CC crypto/sha256_generic.o
CC net/netlabel/netlabel_user.o
CC drivers/tty/serial/8250/8250_mid.o
CC io_uring/alloc_cache.o
CC kernel/events/callchain.o
CC drivers/gpu/drm/virtio/virtgpu_plane.o
CC net/netlabel/netlabel_kapi.o
CC arch/x86/kernel/cpu/bus_lock.o
CC block/bsg.o
CC net/ipv6/netfilter/ip6t_ipv6header.o
CC kernel/cgroup/cgroup-v1.o
CC fs/lockd/clntxdr.o
CC sound/hda/array.o
CC drivers/base/class.o
CC lib/kobject.o
CC kernel/time/clocksource.o
CC drivers/acpi/acpica/exnames.o
CC kernel/cgroup/freezer.o
CC net/ipv6/netfilter/ip6t_REJECT.o
CC net/netfilter/nf_conntrack_proto_udp.o
CC drivers/gpu/drm/i915/i915_sysfs.o
CC net/core/neighbour.o
CC mm/show_mem.o
CC crypto/sha512_generic.o
CC drivers/pci/iomap.o
CC mm/interval_tree.o
CC io_uring/io-wq.o
CC mm/list_lru.o
CC block/blk-cgroup.o
CC drivers/tty/serial/8250/8250_pci.o
CC drivers/acpi/acpica/exoparg1.o
CC net/core/rtnetlink.o
CC drivers/acpi/utils.o
CC net/netfilter/nf_conntrack_proto_icmp.o
CC drivers/gpu/drm/virtio/virtgpu_ioctl.o
CC net/ipv4/tcp.o
AR drivers/gpu/drm/panel/built-in.a
CC sound/hda/hdmi_chmap.o
CC net/rfkill/core.o
CC lib/kobject_uevent.o
CC arch/x86/kernel/cpu/capflags.o
CC drivers/pci/quirks.o
AR drivers/gpu/drm/bridge/analogix/built-in.a
AR arch/x86/kernel/cpu/built-in.a
CC arch/x86/kernel/dumpstack.o
AR drivers/gpu/drm/bridge/cadence/built-in.a
CC net/sunrpc/auth_gss/gss_rpc_upcall.o
AR drivers/gpu/drm/bridge/imx/built-in.a
CC drivers/tty/tty_ioctl.o
AR drivers/gpu/drm/bridge/synopsys/built-in.a
CC drivers/tty/tty_ldisc.o
AR security/selinux/built-in.a
CC net/ethtool/fec.o
AR drivers/gpu/drm/bridge/built-in.a
AR security/built-in.a
CC drivers/base/platform.o
AR drivers/scsi/pcmcia/built-in.a
CC drivers/gpu/drm/i915/i915_utils.o
AR drivers/nvme/common/built-in.a
CC drivers/scsi/scsi.o
AR drivers/nvme/host/built-in.a
AR drivers/nvme/target/built-in.a
AR drivers/nvme/built-in.a
CC net/wireless/sysfs.o
CC net/wireless/radiotap.o
CC fs/nfs/io.o
CC kernel/time/jiffies.o
CC fs/lockd/host.o
CC net/sunrpc/xprtsock.o
CC drivers/acpi/acpica/exoparg2.o
CC net/netlabel/netlabel_domainhash.o
CC kernel/events/hw_breakpoint.o
CC io_uring/futex.o
CC kernel/exec_domain.o
CC crypto/sha3_generic.o
CC kernel/cgroup/legacy_freezer.o
CC fs/nfs/direct.o
CC net/wireless/util.o
CC mm/workingset.o
CC kernel/trace/trace_stat.o
CC fs/nls/nls_base.o
AR net/xfrm/built-in.a
CC lib/logic_pio.o
CC kernel/time/timer_list.o
AR net/ipv6/netfilter/built-in.a
CC net/ipv6/addrconf.o
CC drivers/tty/tty_buffer.o
CC arch/x86/kernel/nmi.o
CC drivers/acpi/acpica/exoparg3.o
CC sound/hda/trace.o
CC drivers/gpu/drm/virtio/virtgpu_prime.o
CC kernel/events/uprobes.o
CC crypto/ecb.o
CC net/mac80211/status.o
CC net/netlabel/netlabel_addrlist.o
CC net/rfkill/input.o
CC sound/sound_core.o
CC drivers/gpu/drm/i915/intel_clock_gating.o
CC fs/nls/nls_cp437.o
CC block/blk-ioprio.o
CC net/netfilter/nf_conntrack_extend.o
CC drivers/gpu/drm/i915/intel_cpu_info.o
CC fs/lockd/svc.o
CC net/ethtool/eeprom.o
CC drivers/base/cpu.o
CC drivers/acpi/reboot.o
CC drivers/tty/serial/8250/8250_pericom.o
CC kernel/cgroup/pids.o
CC net/netlabel/netlabel_mgmt.o
CC net/sunrpc/auth_gss/gss_rpc_xdr.o
CC fs/lockd/svclock.o
CC drivers/acpi/acpica/exoparg6.o
CC lib/maple_tree.o
CC drivers/base/firmware.o
CC net/sunrpc/sched.o
CC kernel/trace/trace_printk.o
CC crypto/cbc.o
CC mm/debug.o
CC mm/gup.o
CC drivers/scsi/hosts.o
CC io_uring/napi.o
CC drivers/scsi/scsi_ioctl.o
CC kernel/time/timeconv.o
CC fs/nls/nls_ascii.o
CC fs/nls/nls_iso8859-1.o
AR net/rfkill/built-in.a
CC net/mac80211/driver-ops.o
CC kernel/panic.o
CC net/core/utils.o
CC drivers/acpi/acpica/exprep.o
CC drivers/gpu/drm/virtio/virtgpu_trace_points.o
CC drivers/ata/libata-core.o
CC net/ethtool/stats.o
CC arch/x86/kernel/ldt.o
CC kernel/cgroup/rdma.o
CC crypto/ctr.o
CC block/blk-iolatency.o
CC net/9p/mod.o
CC sound/hda/hdac_component.o
CC net/dns_resolver/dns_key.o
CC kernel/time/timecounter.o
CC kernel/time/alarmtimer.o
AR drivers/tty/serial/8250/built-in.a
CC fs/nls/nls_utf8.o
AR drivers/tty/serial/built-in.a
CC drivers/tty/tty_port.o
CC drivers/acpi/acpica/exregion.o
CC drivers/base/init.o
CC net/dns_resolver/dns_query.o
CC drivers/pci/pci-label.o
CC kernel/trace/pid_list.o
CC net/9p/client.o
CC sound/hda/hdac_i915.o
CC drivers/gpu/drm/i915/intel_device_info.o
CC net/netfilter/nf_conntrack_acct.o
CC kernel/cgroup/cpuset.o
AR fs/nls/built-in.a
CC fs/ext4/migrate.o
CC fs/ext4/mmp.o
CC crypto/gcm.o
CC drivers/acpi/nvs.o
CC drivers/scsi/scsicam.o
CC drivers/scsi/scsi_error.o
CC net/sunrpc/auth_gss/trace.o
CC drivers/acpi/acpica/exresnte.o
CC drivers/scsi/scsi_lib.o
CC net/netlabel/netlabel_unlabeled.o
CC kernel/cgroup/misc.o
CC drivers/acpi/acpica/exresolv.o
CC drivers/gpu/drm/virtio/virtgpu_submit.o
CC sound/last.o
CC fs/lockd/svcshare.o
CC net/9p/error.o
CC fs/nfs/pagelist.o
CC drivers/base/map.o
CC arch/x86/kernel/setup.o
CC drivers/gpu/drm/i915/intel_memory_region.o
CC drivers/tty/tty_mutex.o
CC kernel/cpu.o
CC drivers/pci/vgaarb.o
AR net/dns_resolver/built-in.a
CC drivers/ata/libata-scsi.o
AR drivers/net/phy/mediatek/built-in.a
AR io_uring/built-in.a
AR drivers/net/phy/qcom/built-in.a
AR drivers/net/pse-pd/built-in.a
CC drivers/net/phy/realtek/realtek_main.o
CC net/handshake/alert.o
CC drivers/acpi/acpica/exresop.o
CC drivers/base/devres.o
CC fs/nfs/read.o
CC net/ethtool/phc_vclocks.o
CC sound/hda/intel-dsp-config.o
CC net/ethtool/mm.o
CC drivers/net/phy/realtek/realtek_hwmon.o
CC kernel/exit.o
CC kernel/time/posix-timers.o
CC kernel/trace/trace_sched_switch.o
CC mm/mmap_lock.o
AR drivers/gpu/drm/hisilicon/built-in.a
CC net/ipv4/tcp_input.o
CC net/ipv4/tcp_output.o
CC block/blk-iocost.o
CC net/handshake/genl.o
CC net/netlabel/netlabel_cipso_v4.o
CC fs/ext4/move_extent.o
CC drivers/tty/tty_ldsem.o
CC crypto/ccm.o
CC drivers/acpi/acpica/exserial.o
CC kernel/time/posix-cpu-timers.o
AR drivers/gpu/drm/virtio/built-in.a
CC drivers/base/attribute_container.o
CC net/netfilter/nf_conntrack_seqadj.o
AR fs/unicode/built-in.a
CC net/netfilter/nf_conntrack_proto_icmpv6.o
CC drivers/base/transport_class.o
CC fs/lockd/svcproc.o
AR kernel/events/built-in.a
CC net/core/link_watch.o
CC sound/hda/intel-nhlt.o
CC net/ipv6/addrlabel.o
CC drivers/acpi/acpica/exstore.o
CC arch/x86/kernel/x86_init.o
CC drivers/gpu/drm/i915/intel_pcode.o
CC drivers/scsi/constants.o
CC net/devres.o
CC drivers/net/mdio/acpi_mdio.o
CC kernel/cgroup/debug.o
CC net/wireless/reg.o
CC kernel/time/posix-clock.o
CC net/ethtool/module.o
CC drivers/base/topology.o
AR drivers/pci/built-in.a
CC net/sunrpc/auth_gss/gss_krb5_mech.o
CC mm/highmem.o
AR drivers/gpu/drm/mxsfb/built-in.a
CC drivers/tty/tty_baudrate.o
CC drivers/acpi/acpica/exstoren.o
CC net/socket.o
CC net/9p/protocol.o
CC net/mac80211/sta_info.o
CC drivers/acpi/wakeup.o
AR drivers/net/phy/realtek/built-in.a
CC drivers/net/phy/mdio-boardinfo.o
CC fs/autofs/init.o
CC sound/hda/intel-sdw-acpi.o
CC net/handshake/netlink.o
CC kernel/trace/trace_nop.o
CC net/ipv4/tcp_timer.o
CC fs/ext4/namei.o
CC crypto/aes_generic.o
CC drivers/acpi/acpica/exstorob.o
CC net/ipv4/tcp_ipv4.o
CC net/9p/trans_common.o
AR drivers/gpu/drm/tiny/built-in.a
CC net/netlabel/netlabel_calipso.o
CC arch/x86/kernel/i8259.o
CC fs/nfs/symlink.o
CC drivers/scsi/scsi_lib_dma.o
CC drivers/tty/tty_jobctrl.o
CC net/ethtool/cmis_fw_update.o
CC net/mac80211/wep.o
CC drivers/base/container.o
CC drivers/base/property.o
AR drivers/gpu/drm/xlnx/built-in.a
AR drivers/gpu/drm/gud/built-in.a
CC net/9p/trans_fd.o
CC net/ipv4/tcp_minisocks.o
CC net/core/filter.o
CC kernel/time/itimer.o
AR kernel/cgroup/built-in.a
CC net/9p/trans_virtio.o
AR sound/hda/built-in.a
CC drivers/acpi/acpica/exsystem.o
CC drivers/net/phy/stubs.o
AR sound/built-in.a
CC drivers/base/cacheinfo.o
CC drivers/net/mdio/fwnode_mdio.o
CC drivers/base/swnode.o
CC net/netfilter/nf_conntrack_netlink.o
CC block/mq-deadline.o
CC fs/lockd/svcsubs.o
CC fs/9p/vfs_super.o
CC net/sunrpc/auth_gss/gss_krb5_seal.o
CC drivers/gpu/drm/i915/intel_region_ttm.o
CC fs/autofs/inode.o
CC net/ipv6/route.o
CC net/netfilter/nf_conntrack_ftp.o
CC net/sysctl_net.o
CC mm/memory.o
CC kernel/trace/blktrace.o
CC kernel/time/clockevents.o
CC kernel/softirq.o
CC fs/ext4/page-io.o
CC crypto/authenc.o
CC arch/x86/kernel/irqinit.o
CC arch/x86/kernel/jump_label.o
CC drivers/acpi/acpica/extrace.o
CC drivers/scsi/scsi_scan.o
CC drivers/tty/n_null.o
CC net/handshake/request.o
CC drivers/acpi/acpica/exutils.o
CC fs/9p/vfs_inode.o
CC fs/nfs/unlink.o
GEN drivers/scsi/scsi_devinfo_tbl.c
CC drivers/acpi/acpica/hwacpi.o
AR net/netlabel/built-in.a
CC drivers/tty/pty.o
CC drivers/net/phy/mdio_devres.o
CC fs/autofs/root.o
CC drivers/tty/tty_audit.o
CC kernel/time/tick-common.o
CC net/ethtool/cmis_cdb.o
CC drivers/ata/libata-eh.o
AR drivers/net/mdio/built-in.a
CC fs/lockd/mon.o
CC drivers/acpi/acpica/hwesleep.o
CC lib/memcat_p.o
CC net/netfilter/nf_conntrack_irc.o
CC drivers/net/phy/phy.o
CC drivers/gpu/drm/i915/intel_runtime_pm.o
CC net/ipv6/ip6_fib.o
CC net/sunrpc/auth_gss/gss_krb5_unseal.o
CC drivers/firewire/init_ohci1394_dma.o
CC drivers/acpi/sleep.o
CC net/netfilter/nf_conntrack_sip.o
CC drivers/base/faux.o
CC drivers/tty/sysrq.o
CC arch/x86/kernel/irq_work.o
AR drivers/net/pcs/built-in.a
CC drivers/net/phy/phy-c45.o
CC fs/autofs/symlink.o
CC drivers/gpu/drm/i915/intel_sbi.o
AR net/9p/built-in.a
CC drivers/gpu/drm/i915/intel_step.o
CC block/kyber-iosched.o
CC net/ipv4/tcp_cong.o
CC drivers/acpi/acpica/hwgpe.o
CC crypto/authencesn.o
CC fs/autofs/waitq.o
AR fs/hostfs/built-in.a
CC fs/9p/vfs_inode_dotl.o
CC net/sunrpc/auth.o
CC net/wireless/scan.o
CC drivers/base/auxiliary.o
CC net/ipv6/ipv6_sockglue.o
CC lib/nmi_backtrace.o
CC drivers/acpi/acpica/hwregs.o
CC net/ethtool/pse-pd.o
CC drivers/scsi/scsi_devinfo.o
AR drivers/firewire/built-in.a
CC fs/9p/vfs_addr.o
CC kernel/trace/trace_events.o
AR drivers/net/ethernet/3com/built-in.a
CC drivers/net/ethernet/8390/ne2k-pci.o
AR drivers/gpu/drm/solomon/built-in.a
CC [M] drivers/gpu/drm/scheduler/sched_main.o
CC kernel/time/tick-broadcast.o
CC kernel/time/tick-broadcast-hrtimer.o
CC fs/autofs/expire.o
CC net/handshake/tlshd.o
CC net/handshake/trace.o
HOSTCC drivers/gpu/drm/xe/xe_gen_wa_oob
CC net/sunrpc/auth_gss/gss_krb5_wrap.o
CC drivers/base/devtmpfs.o
CC fs/lockd/trace.o
CC arch/x86/kernel/probe_roms.o
CC drivers/acpi/acpica/hwsleep.o
CC lib/objpool.o
CC drivers/net/ethernet/8390/8390.o
GEN xe_wa_oob.c xe_wa_oob.h
CC [M] drivers/gpu/drm/xe/xe_bb.o
CC net/wireless/nl80211.o
CC drivers/cdrom/cdrom.o
CC drivers/gpu/drm/i915/intel_uncore.o
AR drivers/tty/built-in.a
AR drivers/auxdisplay/built-in.a
CC drivers/net/phy/phy-core.o
CC net/core/sock_diag.o
CC drivers/gpu/drm/drm_atomic.o
CC crypto/lzo.o
CC drivers/base/module.o
CC drivers/scsi/scsi_sysctl.o
CC net/ethtool/plca.o
CC fs/nfs/write.o
CC fs/ext4/readpage.o
CC drivers/acpi/acpica/hwvalid.o
CC kernel/time/tick-oneshot.o
AR drivers/net/wireless/admtek/built-in.a
AR drivers/net/wireless/ath/built-in.a
CC net/mac80211/aead_api.o
CC fs/9p/vfs_file.o
CC net/ipv6/ndisc.o
AR drivers/net/wireless/atmel/built-in.a
AR drivers/net/wireless/broadcom/built-in.a
AR drivers/net/wireless/intel/built-in.a
CC mm/mincore.o
CC mm/mlock.o
AR drivers/net/wireless/intersil/built-in.a
AR drivers/net/wireless/marvell/built-in.a
AR drivers/net/wireless/mediatek/built-in.a
CC lib/plist.o
AR drivers/net/wireless/microchip/built-in.a
AR drivers/net/wireless/purelifi/built-in.a
AR drivers/net/wireless/quantenna/built-in.a
AR drivers/net/wireless/ralink/built-in.a
AR drivers/net/wireless/realtek/built-in.a
AR drivers/net/wireless/rsi/built-in.a
AR drivers/net/wireless/silabs/built-in.a
CC lib/radix-tree.o
AR drivers/net/wireless/st/built-in.a
CC net/mac80211/wpa.o
AR drivers/net/wireless/ti/built-in.a
CC block/blk-mq-debugfs.o
CC mm/mmap.o
AR drivers/net/wireless/zydas/built-in.a
CC fs/autofs/dev-ioctl.o
AR drivers/net/wireless/virtual/built-in.a
AR drivers/net/wireless/built-in.a
CC net/mac80211/scan.o
CC net/mac80211/offchannel.o
CC drivers/acpi/acpica/hwxface.o
CC arch/x86/kernel/sys_ia32.o
CC net/sunrpc/auth_gss/gss_krb5_crypto.o
CC drivers/ata/libata-transport.o
CC crypto/lzo-rle.o
CC net/ipv4/tcp_metrics.o
CC kernel/time/tick-sched.o
CC drivers/pcmcia/cs.o
CC drivers/acpi/device_sysfs.o
CC drivers/base/auxiliary_sysfs.o
CC drivers/scsi/scsi_proc.o
CC [M] drivers/gpu/drm/xe/xe_bo.o
CC net/netfilter/nf_nat_core.o
CC kernel/trace/trace_export.o
CC fs/ext4/resize.o
CC [M] drivers/gpu/drm/scheduler/sched_fence.o
CC fs/9p/vfs_dir.o
CC drivers/acpi/acpica/hwxfsleep.o
CC fs/lockd/xdr.o
AR drivers/net/ethernet/8390/built-in.a
AR drivers/net/ethernet/adaptec/built-in.a
CC kernel/time/timer_migration.o
AR drivers/net/ethernet/agere/built-in.a
AR drivers/net/ethernet/alacritech/built-in.a
AR drivers/net/ethernet/alteon/built-in.a
AR drivers/net/ethernet/amazon/built-in.a
CC drivers/net/phy/phy_device.o
CC net/ethtool/phy.o
AR drivers/net/ethernet/amd/built-in.a
AR net/handshake/built-in.a
AR drivers/net/ethernet/aquantia/built-in.a
AR drivers/net/ethernet/arc/built-in.a
AR drivers/net/usb/built-in.a
CC fs/debugfs/inode.o
CC net/core/dev_ioctl.o
AR drivers/net/ethernet/asix/built-in.a
AR drivers/net/ethernet/atheros/built-in.a
CC mm/mmu_gather.o
AR drivers/net/ethernet/cadence/built-in.a
CC drivers/base/devcoredump.o
CC drivers/acpi/device_pm.o
CC drivers/net/ethernet/broadcom/bnx2.o
CC crypto/rng.o
CC [M] drivers/gpu/drm/scheduler/sched_entity.o
CC net/sunrpc/auth_null.o
CC fs/ext4/super.o
CC [M] drivers/gpu/drm/xe/xe_bo_evict.o
AR fs/autofs/built-in.a
CC drivers/acpi/acpica/hwpci.o
CC drivers/pcmcia/socket_sysfs.o
CC drivers/acpi/acpica/nsaccess.o
CC drivers/acpi/acpica/nsalloc.o
CC lib/ratelimit.o
CC arch/x86/kernel/ksysfs.o
CC block/blk-pm.o
CC drivers/gpu/drm/i915/intel_uncore_trace.o
CC drivers/net/mii.o
CC drivers/gpu/drm/drm_atomic_uapi.o
CC drivers/ata/libata-trace.o
CC net/ipv6/udp.o
CC drivers/scsi/scsi_debugfs.o
CC lib/rbtree.o
CC fs/9p/vfs_dentry.o
CC crypto/drbg.o
AR drivers/cdrom/built-in.a
CC drivers/gpu/drm/i915/intel_wakeref.o
CC net/netfilter/nf_nat_proto.o
CC drivers/net/phy/linkmode.o
CC drivers/acpi/acpica/nsarguments.o
CC kernel/trace/trace_event_perf.o
CC drivers/base/platform-msi.o
CC net/core/tso.o
CC net/sunrpc/auth_gss/gss_krb5_keys.o
CC kernel/resource.o
LD [M] drivers/gpu/drm/scheduler/gpu-sched.o
CC lib/seq_buf.o
AR drivers/net/ethernet/brocade/built-in.a
CC net/wireless/mlme.o
CC drivers/usb/common/common.o
CC mm/mprotect.o
CC drivers/pcmcia/cardbus.o
CC arch/x86/kernel/bootflag.o
CC fs/debugfs/file.o
CC net/ethtool/tsconfig.o
CC block/holder.o
CC fs/lockd/clnt4xdr.o
CC drivers/net/loopback.o
CC net/ipv4/tcp_fastopen.o
CC drivers/acpi/acpica/nsconvert.o
CC [M] drivers/gpu/drm/xe/xe_devcoredump.o
CC drivers/ata/libata-sata.o
CC drivers/scsi/scsi_trace.o
CC drivers/net/ethernet/broadcom/tg3.o
CC drivers/base/physical_location.o
CC kernel/time/vsyscall.o
CC net/ipv6/udplite.o
CC fs/9p/v9fs.o
CC lib/siphash.o
CC fs/tracefs/inode.o
CC drivers/acpi/acpica/nsdump.o
CC drivers/ata/libata-sff.o
CC fs/tracefs/event_inode.o
CC net/wireless/ibss.o
CC fs/nfs/namespace.o
CC crypto/jitterentropy.o
AR drivers/net/ethernet/cavium/common/built-in.a
CC net/core/sock_reuseport.o
CC arch/x86/kernel/e820.o
CC net/ipv4/tcp_rate.o
AR drivers/net/ethernet/cavium/thunder/built-in.a
CC crypto/jitterentropy-kcapi.o
AR drivers/net/ethernet/cavium/liquidio/built-in.a
CC drivers/pcmcia/ds.o
CC [M] drivers/gpu/drm/xe/xe_device.o
AR drivers/net/ethernet/cavium/octeon/built-in.a
CC kernel/time/timekeeping_debug.o
AR drivers/net/ethernet/cavium/built-in.a
CC drivers/usb/common/debug.o
CC net/netfilter/nf_nat_helper.o
CC kernel/trace/trace_events_filter.o
CC drivers/gpu/drm/i915/vlv_sideband.o
CC net/netfilter/nf_nat_masquerade.o
CC net/mac80211/ht.o
CC drivers/base/trace.o
CC drivers/acpi/acpica/nseval.o
CC lib/string.o
AR drivers/usb/common/built-in.a
AR block/built-in.a
CC drivers/usb/core/usb.o
CC drivers/usb/core/hub.o
CC fs/nfs/mount_clnt.o
CC drivers/net/phy/phy_link_topology.o
CC drivers/scsi/scsi_logging.o
CC crypto/ghash-generic.o
CC lib/timerqueue.o
CC kernel/time/namespace.o
CC drivers/usb/core/hcd.o
AR net/sunrpc/auth_gss/built-in.a
CC fs/9p/fid.o
CC net/sunrpc/auth_tls.o
CC mm/mremap.o
CC fs/9p/xattr.o
CC drivers/usb/core/urb.o
AR net/ethtool/built-in.a
CC drivers/ata/libata-pmp.o
CC drivers/acpi/acpica/nsinit.o
CC crypto/hash_info.o
AR fs/debugfs/built-in.a
CC fs/lockd/xdr4.o
CC lib/union_find.o
CC fs/ext4/symlink.o
CC net/mac80211/agg-tx.o
CC net/netfilter/nf_nat_ftp.o
CC lib/vsprintf.o
CC net/sunrpc/auth_unix.o
CC fs/lockd/svc4proc.o
CC drivers/acpi/proc.o
CC net/wireless/sme.o
CC drivers/usb/core/message.o
CC crypto/rsapubkey.asn1.o
CC crypto/rsaprivkey.asn1.o
AR crypto/built-in.a
CC net/sunrpc/svc.o
AR drivers/base/built-in.a
AR fs/tracefs/built-in.a
CC fs/ext4/sysfs.o
CC drivers/net/netconsole.o
CC drivers/acpi/acpica/nsload.o
CC drivers/acpi/acpica/nsnames.o
CC drivers/pcmcia/pcmcia_resource.o
CC drivers/acpi/acpica/nsobject.o
CC drivers/gpu/drm/i915/vlv_suspend.o
AR kernel/time/built-in.a
CC drivers/net/phy/mdio_bus.o
CC drivers/scsi/scsi_pm.o
AR drivers/usb/phy/built-in.a
CC drivers/acpi/bus.o
AR fs/9p/built-in.a
CC arch/x86/kernel/pci-dma.o
CC drivers/gpu/drm/i915/soc/intel_dram.o
CC arch/x86/kernel/quirks.o
CC net/ipv4/tcp_recovery.o
CC arch/x86/kernel/kdebugfs.o
CC kernel/sysctl.o
CC drivers/usb/core/driver.o
CC net/ipv6/raw.o
CC drivers/net/virtio_net.o
CC [M] drivers/gpu/drm/xe/xe_device_sysfs.o
CC drivers/usb/mon/mon_main.o
CC fs/nfs/nfstrace.o
CC drivers/scsi/scsi_bsg.o
CC drivers/usb/host/pci-quirks.o
CC drivers/usb/core/config.o
CC kernel/capability.o
CC drivers/acpi/acpica/nsparse.o
CC [M] fs/efivarfs/inode.o
CC net/ipv4/tcp_ulp.o
CC kernel/trace/trace_events_trigger.o
CC mm/msync.o
CC net/netfilter/nf_nat_irc.o
CC fs/ext4/xattr.o
CC fs/open.o
CC drivers/ata/libata-acpi.o
CC [M] drivers/gpu/drm/xe/xe_dma_buf.o
CC arch/x86/kernel/alternative.o
CC fs/lockd/procfs.o
CC fs/nfs/export.o
CC drivers/acpi/acpica/nspredef.o
CC drivers/usb/mon/mon_stat.o
CC net/core/fib_notifier.o
CC net/sunrpc/svcsock.o
CC lib/win_minmax.o
CC drivers/input/serio/serio.o
CC drivers/input/keyboard/atkbd.o
CC drivers/input/mouse/psmouse-base.o
CC drivers/scsi/scsi_common.o
CC net/sunrpc/svcauth.o
CC lib/xarray.o
CC [M] fs/efivarfs/file.o
CC drivers/pcmcia/cistpl.o
CC lib/lockref.o
CC drivers/net/phy/mdio_device.o
CC mm/page_vma_mapped.o
CC drivers/acpi/acpica/nsprepkg.o
CC drivers/usb/host/ehci-hcd.o
CC net/ipv4/tcp_offload.o
CC drivers/gpu/drm/i915/soc/intel_gmch.o
CC lib/bcd.o
CC kernel/trace/trace_eprobe.o
CC net/ipv4/tcp_plb.o
CC drivers/acpi/acpica/nsrepair.o
CC fs/nfs/sysfs.o
CC drivers/pcmcia/pcmcia_cis.o
CC drivers/usb/mon/mon_text.o
CC drivers/scsi/scsi_transport_spi.o
CC net/ipv4/datagram.o
CC fs/ext4/xattr_hurd.o
AR fs/lockd/built-in.a
CC [M] fs/efivarfs/super.o
CC mm/pagewalk.o
CC drivers/input/serio/i8042.o
CC net/sunrpc/svcauth_unix.o
CC [M] drivers/gpu/drm/xe/xe_drm_client.o
CC net/mac80211/agg-rx.o
CC drivers/input/mouse/synaptics.o
CC drivers/net/net_failover.o
CC drivers/ata/libata-pata-timings.o
CC net/netfilter/nf_nat_sip.o
CC drivers/acpi/acpica/nsrepair2.o
CC drivers/gpu/drm/i915/soc/intel_pch.o
CC net/core/xdp.o
CC kernel/ptrace.o
CC drivers/usb/core/file.o
CC drivers/pcmcia/rsrc_mgr.o
CC drivers/ata/ahci.o
AR drivers/input/keyboard/built-in.a
CC drivers/usb/host/ehci-pci.o
CC drivers/scsi/virtio_scsi.o
CC drivers/usb/host/ohci-hcd.o
CC arch/x86/kernel/i8253.o
CC drivers/net/phy/swphy.o
CC net/ipv6/icmp.o
CC drivers/rtc/lib.o
CC drivers/acpi/acpica/nssearch.o
CC drivers/gpu/drm/drm_auth.o
CC net/wireless/chan.o
CC drivers/usb/mon/mon_bin.o
CC net/wireless/ethtool.o
CC lib/sort.o
CC drivers/ata/libahci.o
CC drivers/usb/core/buffer.o
CC lib/parser.o
CC [M] fs/efivarfs/vars.o
CC mm/pgtable-generic.o
CC kernel/trace/trace_kprobe.o
CC drivers/rtc/class.o
CC drivers/acpi/glue.o
CC net/mac80211/vht.o
CC drivers/pcmcia/rsrc_nonstatic.o
CC arch/x86/kernel/hw_breakpoint.o
CC net/netfilter/x_tables.o
CC drivers/pcmcia/yenta_socket.o
CC drivers/acpi/acpica/nsutils.o
AR drivers/input/joystick/built-in.a
CC net/core/flow_offload.o
CC drivers/usb/class/usblp.o
CC net/core/gro.o
AR drivers/net/ethernet/chelsio/built-in.a
CC kernel/trace/error_report-traces.o
CC net/ipv4/raw.o
CC lib/debug_locks.o
CC drivers/net/phy/fixed_phy.o
CC fs/nfs/fs_context.o
CC kernel/trace/power-traces.o
CC drivers/usb/storage/scsiglue.o
CC drivers/usb/storage/protocol.o
CC [M] drivers/gpu/drm/xe/xe_eu_stall.o
CC drivers/gpu/drm/i915/soc/intel_rom.o
CC drivers/input/serio/serport.o
CC drivers/usb/storage/transport.o
CC lib/random32.o
CC net/sunrpc/addr.o
CC drivers/input/mouse/focaltech.o
CC drivers/usb/core/sysfs.o
CC drivers/acpi/acpica/nswalk.o
CC net/netfilter/xt_tcpudp.o
CC drivers/scsi/sd.o
CC net/wireless/mesh.o
CC drivers/rtc/interface.o
LD [M] fs/efivarfs/efivarfs.o
CC fs/nfs/nfsroot.o
CC mm/rmap.o
AR drivers/input/tablet/built-in.a
CC drivers/acpi/scan.o
CC drivers/usb/host/ohci-pci.o
AR drivers/usb/mon/built-in.a
AR drivers/usb/misc/built-in.a
CC drivers/usb/host/uhci-hcd.o
CC lib/bust_spinlocks.o
CC drivers/input/serio/libps2.o
CC arch/x86/kernel/tsc.o
CC arch/x86/kernel/tsc_msr.o
CC drivers/acpi/acpica/nsxfeval.o
CC drivers/scsi/sr.o
AR drivers/usb/class/built-in.a
CC drivers/usb/storage/usb.o
CC net/netfilter/xt_CONNSECMARK.o
AR drivers/net/ethernet/cisco/built-in.a
CC drivers/usb/storage/initializers.o
CC drivers/input/mouse/alps.o
CC drivers/i2c/algos/i2c-algo-bit.o
CC drivers/i2c/busses/i2c-i801.o
CC net/ipv6/mcast.o
CC drivers/input/mouse/byd.o
AR drivers/net/phy/built-in.a
CC drivers/acpi/mipi-disco-img.o
AR drivers/input/touchscreen/built-in.a
CC drivers/acpi/resource.o
AR drivers/input/misc/built-in.a
AR drivers/i2c/muxes/built-in.a
CC drivers/gpu/drm/drm_blend.o
AR drivers/pcmcia/built-in.a
CC lib/kasprintf.o
CC drivers/acpi/acpica/nsxfname.o
CC drivers/gpu/drm/i915/i915_memcpy.o
CC mm/vmalloc.o
CC drivers/usb/core/endpoint.o
CC net/ipv4/udp.o
CC drivers/ata/ata_piix.o
CC fs/ext4/xattr_trusted.o
CC kernel/user.o
CC drivers/gpu/drm/i915/i915_mm.o
CC net/sunrpc/rpcb_clnt.o
AR drivers/input/serio/built-in.a
AR drivers/i3c/built-in.a
CC net/wireless/ap.o
CC lib/bitmap.o
CC drivers/usb/early/ehci-dbgp.o
CC drivers/scsi/sr_ioctl.o
CC drivers/input/mouse/logips2pp.o
CC net/core/netdev-genl.o
AR drivers/net/ethernet/cortina/built-in.a
CC drivers/i2c/i2c-boardinfo.o
CC drivers/i2c/i2c-core-base.o
CC fs/ext4/xattr_user.o
CC [M] drivers/gpu/drm/xe/xe_exec.o
CC drivers/acpi/acpica/nsxfobj.o
CC kernel/trace/rpm-traces.o
CC fs/nfs/sysctl.o
CC drivers/scsi/sr_vendor.o
CC net/wireless/trace.o
CC net/mac80211/he.o
CC drivers/rtc/nvmem.o
CC arch/x86/kernel/io_delay.o
AR drivers/net/ethernet/dec/tulip/built-in.a
AR drivers/net/ethernet/dec/built-in.a
CC net/sunrpc/timer.o
CC drivers/usb/storage/sierra_ms.o
CC kernel/trace/trace_dynevent.o
CC drivers/usb/core/devio.o
CC drivers/gpu/drm/drm_bridge.o
CC net/wireless/ocb.o
CC net/core/netdev-genl-gen.o
AR drivers/i2c/algos/built-in.a
CC drivers/input/mouse/lifebook.o
CC net/core/gso.o
CC drivers/usb/core/notify.o
CC net/netfilter/xt_NFLOG.o
CC drivers/acpi/acpica/psargs.o
CC drivers/rtc/dev.o
CC mm/vma.o
CC drivers/ata/pata_amd.o
CC fs/nfs/nfs3super.o
CC arch/x86/kernel/rtc.o
AR drivers/i2c/busses/built-in.a
CC kernel/signal.o
CC drivers/usb/storage/option_ms.o
CC drivers/usb/host/xhci.o
CC net/sunrpc/xdr.o
CC kernel/trace/trace_probe.o
CC net/ipv6/reassembly.o
CC lib/scatterlist.o
CC drivers/gpu/drm/i915/i915_sw_fence.o
CC [M] drivers/gpu/drm/xe/xe_exec_queue.o
CC mm/process_vm_access.o
AR drivers/usb/early/built-in.a
CC drivers/input/input.o
CC net/mac80211/s1g.o
CC kernel/trace/trace_uprobe.o
CC drivers/gpu/drm/drm_cache.o
CC arch/x86/kernel/resource.o
CC drivers/acpi/acpica/psloop.o
CC drivers/gpu/drm/i915/i915_sw_fence_work.o
CC drivers/input/mouse/trackpoint.o
CC net/wireless/pmsr.o
CC drivers/i2c/i2c-core-smbus.o
CC drivers/acpi/acpi_processor.o
CC fs/ext4/fast_commit.o
CC drivers/usb/core/generic.o
CC drivers/rtc/proc.o
CC drivers/input/input-compat.o
GEN net/wireless/shipped-certs.c
CC drivers/scsi/sg.o
CC drivers/usb/storage/usual-tables.o
AS arch/x86/kernel/irqflags.o
CC arch/x86/kernel/static_call.o
CC fs/read_write.o
CC drivers/acpi/processor_core.o
CC net/netfilter/xt_SECMARK.o
CC kernel/sys.o
CC [M] drivers/gpu/drm/xe/xe_execlist.o
CC net/core/net-sysfs.o
CC drivers/ata/pata_oldpiix.o
CC drivers/acpi/acpica/psobject.o
CC drivers/gpu/drm/i915/i915_syncmap.o
CC drivers/input/mouse/cypress_ps2.o
CC fs/nfs/nfs3client.o
CC net/ipv6/tcp_ipv6.o
CC kernel/trace/rethook.o
CC drivers/usb/core/quirks.o
CC arch/x86/kernel/process.o
CC drivers/rtc/sysfs.o
AR drivers/media/i2c/built-in.a
AR drivers/media/tuners/built-in.a
CC arch/x86/kernel/ptrace.o
AR drivers/pps/clients/built-in.a
AR drivers/media/rc/keymaps/built-in.a
CC drivers/pps/pps.o
AR drivers/usb/storage/built-in.a
AR drivers/media/rc/built-in.a
CC net/wireless/shipped-certs.o
AR drivers/media/common/b2c2/built-in.a
AR drivers/media/common/saa7146/built-in.a
AR drivers/net/ethernet/dlink/built-in.a
AR drivers/media/common/siano/built-in.a
CC net/core/hotdata.o
CC drivers/acpi/acpica/psopcode.o
AR drivers/media/common/v4l2-tpg/built-in.a
AR drivers/net/ethernet/emulex/built-in.a
AR drivers/media/common/videobuf2/built-in.a
CC drivers/acpi/acpica/psopinfo.o
AR drivers/media/common/built-in.a
CC drivers/acpi/acpica/psparse.o
CC drivers/gpu/drm/i915/i915_user_extensions.o
AR drivers/media/platform/allegro-dvt/built-in.a
AR drivers/media/platform/amlogic/meson-ge2d/built-in.a
AR drivers/media/platform/amphion/built-in.a
AR drivers/media/platform/amlogic/built-in.a
CC net/ipv4/udplite.o
CC lib/list_sort.o
AR drivers/media/platform/aspeed/built-in.a
AR drivers/media/platform/atmel/built-in.a
AR drivers/media/platform/broadcom/built-in.a
AR drivers/media/platform/cadence/built-in.a
AR drivers/media/platform/chips-media/coda/built-in.a
CC net/ipv6/ping.o
AR drivers/media/platform/chips-media/wave5/built-in.a
CC lib/uuid.o
AR drivers/media/platform/chips-media/built-in.a
AR drivers/media/platform/imagination/built-in.a
AR drivers/media/platform/intel/built-in.a
CC drivers/ata/pata_sch.o
AR drivers/media/platform/marvell/built-in.a
AR drivers/media/platform/mediatek/jpeg/built-in.a
AR drivers/media/platform/mediatek/mdp/built-in.a
CC lib/iov_iter.o
CC kernel/umh.o
AR drivers/media/platform/mediatek/vcodec/common/built-in.a
AR drivers/media/platform/mediatek/vcodec/encoder/built-in.a
AR drivers/media/platform/mediatek/vcodec/decoder/built-in.a
CC arch/x86/kernel/tls.o
CC fs/nfs/nfs3proc.o
CC lib/clz_ctz.o
AR drivers/media/platform/mediatek/vcodec/built-in.a
AR drivers/media/platform/mediatek/vpu/built-in.a
CC drivers/i2c/i2c-core-acpi.o
AR drivers/media/platform/mediatek/mdp3/built-in.a
AR drivers/media/platform/mediatek/built-in.a
CC drivers/ptp/ptp_clock.o
CC drivers/input/mouse/psmouse-smbus.o
CC lib/bsearch.o
AR drivers/media/platform/microchip/built-in.a
AR drivers/media/platform/nuvoton/built-in.a
CC drivers/pps/kapi.o
CC net/netfilter/xt_TCPMSS.o
CC drivers/gpu/drm/i915/i915_debugfs.o
AR drivers/media/platform/nvidia/tegra-vde/built-in.a
AR drivers/media/platform/nvidia/built-in.a
CC drivers/usb/core/devices.o
AR drivers/media/platform/nxp/dw100/built-in.a
AR drivers/media/pci/ttpci/built-in.a
AR drivers/media/platform/nxp/imx-jpeg/built-in.a
CC fs/ext4/orphan.o
CC fs/ext4/acl.o
AR drivers/media/pci/b2c2/built-in.a
CC drivers/acpi/acpica/psscope.o
AR drivers/media/platform/nxp/imx8-isi/built-in.a
AR drivers/media/pci/pluto2/built-in.a
AR drivers/media/platform/nxp/built-in.a
AR drivers/media/pci/dm1105/built-in.a
CC fs/file_table.o
AR drivers/media/pci/pt1/built-in.a
CC drivers/rtc/rtc-mc146818-lib.o
AR drivers/media/platform/qcom/camss/built-in.a
AR drivers/media/pci/pt3/built-in.a
AR drivers/media/platform/qcom/venus/built-in.a
AR drivers/media/pci/mantis/built-in.a
AR drivers/media/platform/qcom/built-in.a
CC drivers/rtc/rtc-cmos.o
CC [M] drivers/gpu/drm/xe/xe_force_wake.o
AR drivers/media/pci/ngene/built-in.a
AR drivers/media/pci/ddbridge/built-in.a
AR drivers/media/platform/raspberrypi/pisp_be/built-in.a
AR drivers/media/pci/saa7146/built-in.a
AR drivers/media/pci/smipcie/built-in.a
AR drivers/media/platform/raspberrypi/rp1-cfe/built-in.a
AR drivers/media/platform/raspberrypi/built-in.a
AR drivers/media/pci/netup_unidvb/built-in.a
AR drivers/net/ethernet/engleder/built-in.a
CC lib/find_bit.o
AR drivers/media/platform/renesas/rcar-vin/built-in.a
AR drivers/media/pci/intel/ipu3/built-in.a
AR drivers/media/platform/renesas/rzg2l-cru/built-in.a
AR drivers/media/pci/intel/ivsc/built-in.a
AR drivers/media/pci/intel/built-in.a
AR drivers/media/platform/renesas/vsp1/built-in.a
AR drivers/media/pci/built-in.a
AR drivers/media/platform/renesas/built-in.a
AR drivers/media/platform/rockchip/rga/built-in.a
CC drivers/acpi/processor_pdc.o
CC net/core/netdev_rx_queue.o
AR drivers/media/platform/rockchip/rkisp1/built-in.a
AR drivers/media/platform/rockchip/built-in.a
AR drivers/media/platform/samsung/exynos-gsc/built-in.a
AR drivers/media/platform/samsung/exynos4-is/built-in.a
AR drivers/media/platform/samsung/s3c-camif/built-in.a
CC drivers/gpu/drm/i915/i915_debugfs_params.o
AR drivers/media/platform/samsung/s5p-g2d/built-in.a
AR drivers/media/platform/samsung/s5p-jpeg/built-in.a
AR drivers/media/platform/samsung/s5p-mfc/built-in.a
AR drivers/media/platform/samsung/built-in.a
CC net/sunrpc/sunrpc_syms.o
CC drivers/acpi/acpica/pstree.o
AR kernel/trace/built-in.a
AR drivers/media/platform/st/sti/bdisp/built-in.a
CC fs/super.o
AR drivers/media/platform/st/sti/c8sectpfe/built-in.a
CC mm/page_alloc.o
AR drivers/media/platform/st/sti/delta/built-in.a
CC drivers/scsi/scsi_sysfs.o
AR drivers/media/platform/st/sti/hva/built-in.a
AR drivers/media/platform/st/stm32/built-in.a
AR drivers/media/platform/st/built-in.a
CC drivers/ata/pata_mpiix.o
CC net/ipv6/exthdrs.o
AR drivers/media/platform/sunxi/sun4i-csi/built-in.a
CC drivers/ata/ata_generic.o
AR drivers/media/platform/sunxi/sun6i-csi/built-in.a
CC net/mac80211/ibss.o
AR drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
AR drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
CC arch/x86/kernel/step.o
CC fs/ext4/xattr_security.o
AR drivers/media/platform/sunxi/sun8i-di/built-in.a
AR drivers/media/platform/ti/am437x/built-in.a
CC drivers/pps/sysfs.o
AR drivers/media/platform/sunxi/sun8i-rotate/built-in.a
AR drivers/media/platform/sunxi/built-in.a
AR drivers/media/platform/ti/cal/built-in.a
AR drivers/media/platform/ti/vpe/built-in.a
CC net/netfilter/xt_conntrack.o
AR drivers/media/platform/ti/davinci/built-in.a
AR drivers/media/platform/ti/j721e-csi2rx/built-in.a
AR drivers/media/platform/ti/omap/built-in.a
CC net/ipv6/datagram.o
AR drivers/media/platform/ti/omap3isp/built-in.a
AR drivers/media/platform/ti/built-in.a
AR drivers/media/platform/verisilicon/built-in.a
AR drivers/media/platform/via/built-in.a
CC net/ipv4/udp_offload.o
AR drivers/media/platform/xilinx/built-in.a
AR drivers/media/platform/built-in.a
CC drivers/acpi/ec.o
AR drivers/input/mouse/built-in.a
AR drivers/media/usb/b2c2/built-in.a
CC [M] drivers/gpu/drm/xe/xe_ggtt.o
CC net/mac80211/iface.o
CC drivers/input/input-mt.o
AR drivers/media/usb/dvb-usb/built-in.a
CC drivers/acpi/acpica/psutils.o
AR drivers/media/usb/dvb-usb-v2/built-in.a
AR drivers/net/ethernet/ezchip/built-in.a
CC kernel/workqueue.o
AR drivers/media/usb/s2255/built-in.a
CC drivers/input/input-poller.o
CC drivers/usb/core/phy.o
AR drivers/media/usb/siano/built-in.a
AR drivers/media/usb/ttusb-budget/built-in.a
AR drivers/media/usb/ttusb-dec/built-in.a
AR drivers/media/usb/built-in.a
CC net/ipv6/ip6_flowlabel.o
AR drivers/media/mmc/siano/built-in.a
CC drivers/power/supply/power_supply_core.o
CC drivers/i2c/i2c-smbus.o
AR drivers/media/mmc/built-in.a
AR drivers/media/firewire/built-in.a
CC drivers/power/supply/power_supply_sysfs.o
AR drivers/media/spi/built-in.a
AR drivers/media/test-drivers/built-in.a
AR drivers/media/built-in.a
CC kernel/pid.o
CC drivers/input/ff-core.o
AR drivers/net/ethernet/fujitsu/built-in.a
AR drivers/pps/built-in.a
CC drivers/acpi/dock.o
CC [M] drivers/gpu/drm/xe/xe_gpu_scheduler.o
CC drivers/hwmon/hwmon.o
CC drivers/gpu/drm/drm_color_mgmt.o
CC drivers/ptp/ptp_chardev.o
CC kernel/task_work.o
CC lib/llist.o
CC net/ipv4/arp.o
AR drivers/net/ethernet/broadcom/built-in.a
AR drivers/net/ethernet/fungible/built-in.a
AR drivers/net/ethernet/google/built-in.a
AR drivers/rtc/built-in.a
AR drivers/net/ethernet/hisilicon/built-in.a
CC net/ipv6/inet6_connection_sock.o
AR drivers/net/ethernet/huawei/built-in.a
CC drivers/net/ethernet/intel/e1000/e1000_main.o
CC drivers/acpi/acpica/pswalk.o
CC [M] drivers/gpu/drm/xe/xe_gsc.o
CC net/ipv6/udp_offload.o
CC arch/x86/kernel/i8237.o
CC net/core/net-procfs.o
CC fs/nfs/nfs3xdr.o
CC drivers/net/ethernet/intel/e1000e/82571.o
CC fs/nfs/nfs3acl.o
AR drivers/ata/built-in.a
CC drivers/net/ethernet/intel/e100.o
CC drivers/gpu/drm/i915/i915_pmu.o
AR fs/ext4/built-in.a
CC net/mac80211/link.o
CC drivers/usb/host/xhci-mem.o
CC net/sunrpc/cache.o
CC kernel/extable.o
CC net/core/netpoll.o
CC drivers/gpu/drm/i915/gt/gen2_engine_cs.o
CC fs/char_dev.o
CC drivers/acpi/acpica/psxface.o
CC arch/x86/kernel/stacktrace.o
CC drivers/usb/core/port.o
CC net/core/fib_rules.o
CC net/ipv6/seg6.o
CC drivers/input/touchscreen.o
AR drivers/scsi/built-in.a
CC net/ipv4/icmp.o
AR drivers/i2c/built-in.a
CC drivers/acpi/pci_root.o
CC net/sunrpc/rpc_pipe.o
CC fs/nfs/nfs4proc.o
CC net/netfilter/xt_policy.o
CC net/core/net-traces.o
CC drivers/power/supply/power_supply_leds.o
CC net/ipv4/devinet.o
CC net/mac80211/rate.o
CC drivers/acpi/acpica/rsaddr.o
CC drivers/ptp/ptp_sysfs.o
CC drivers/acpi/pci_link.o
CC lib/lwq.o
CC fs/stat.o
AR drivers/net/ethernet/i825xx/built-in.a
CC kernel/params.o
CC arch/x86/kernel/reboot.o
CC drivers/net/ethernet/intel/e1000e/ich8lan.o
CC drivers/input/ff-memless.o
CC lib/memweight.o
CC [M] drivers/gpu/drm/xe/xe_gsc_debugfs.o
CC mm/page_frag_cache.o
CC drivers/power/supply/power_supply_hwmon.o
CC drivers/acpi/acpica/rscalc.o
AR drivers/hwmon/built-in.a
CC net/mac80211/michael.o
CC mm/init-mm.o
AR drivers/thermal/broadcom/built-in.a
CC fs/exec.o
AR drivers/thermal/renesas/built-in.a
CC lib/kfifo.o
CC drivers/gpu/drm/drm_connector.o
AR drivers/thermal/samsung/built-in.a
CC drivers/thermal/intel/intel_tcc.o
CC kernel/kthread.o
CC fs/nfs/nfs4xdr.o
CC drivers/gpu/drm/drm_crtc.o
CC drivers/thermal/intel/therm_throt.o
CC drivers/usb/core/hcd-pci.o
CC drivers/input/sparse-keymap.o
CC drivers/gpu/drm/i915/gt/gen6_engine_cs.o
AR drivers/watchdog/built-in.a
CC arch/x86/kernel/msr.o
CC net/ipv6/fib6_notifier.o
CC drivers/acpi/acpica/rscreate.o
CC drivers/usb/host/xhci-ext-caps.o
CC lib/percpu-refcount.o
AR drivers/power/supply/built-in.a
AR drivers/power/built-in.a
CC drivers/acpi/acpica/rsdumpinfo.o
CC drivers/ptp/ptp_vclock.o
CC net/ipv6/rpl.o
CC net/netfilter/xt_state.o
CC [M] net/netfilter/nf_log_syslog.o
AR drivers/net/ethernet/microsoft/built-in.a
CC net/mac80211/tkip.o
CC drivers/input/vivaldi-fmap.o
CC lib/rhashtable.o
CC arch/x86/kernel/cpuid.o
CC drivers/input/input-leds.o
CC net/core/selftests.o
CC [M] drivers/gpu/drm/xe/xe_gsc_proxy.o
CC drivers/acpi/acpica/rsinfo.o
CC drivers/net/ethernet/intel/e1000e/80003es2lan.o
CC drivers/net/ethernet/intel/e1000e/mac.o
CC drivers/usb/core/usb-acpi.o
CC drivers/net/ethernet/intel/e1000/e1000_hw.o
CC drivers/input/evdev.o
CC net/ipv6/ioam6.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.o
CC drivers/net/ethernet/intel/e1000e/manage.o
CC fs/nfs/nfs4state.o
CC drivers/net/ethernet/intel/e1000/e1000_ethtool.o
CC net/ipv4/af_inet.o
CC drivers/gpu/drm/i915/gt/gen6_ppgtt.o
CC net/core/ptp_classifier.o
CC [M] net/netfilter/xt_mark.o
AR drivers/thermal/st/built-in.a
CC [M] drivers/gpu/drm/xe/xe_gsc_submit.o
CC [M] drivers/gpu/drm/xe/xe_gt.o
CC drivers/acpi/pci_irq.o
CC drivers/usb/host/xhci-ring.o
CC drivers/acpi/acpica/rsio.o
CC [M] drivers/gpu/drm/xe/xe_gt_ccs_mode.o
CC mm/memblock.o
CC arch/x86/kernel/early-quirks.o
CC drivers/md/md.o
CC drivers/ptp/ptp_kvm_x86.o
CC drivers/net/ethernet/intel/e1000/e1000_param.o
CC drivers/acpi/acpi_apd.o
CC drivers/acpi/acpica/rsirq.o
AR drivers/thermal/qcom/built-in.a
CC mm/slub.o
CC arch/x86/kernel/smp.o
CC net/core/netprio_cgroup.o
CC drivers/usb/host/xhci-hub.o
CC net/sunrpc/sysfs.o
CC drivers/ptp/ptp_kvm_common.o
AR drivers/usb/core/built-in.a
CC net/mac80211/aes_cmac.o
AR drivers/thermal/intel/built-in.a
AR drivers/thermal/tegra/built-in.a
AR drivers/thermal/mediatek/built-in.a
CC lib/base64.o
CC drivers/thermal/thermal_core.o
CC net/mac80211/aes_gmac.o
CC drivers/acpi/acpica/rslist.o
CC [M] net/netfilter/xt_nat.o
CC drivers/gpu/drm/drm_displayid.o
CC drivers/acpi/acpica/rsmemory.o
CC lib/once.o
CC net/mac80211/fils_aead.o
CC drivers/md/md-bitmap.o
CC kernel/sys_ni.o
CC fs/pipe.o
CC net/ipv4/igmp.o
CC drivers/usb/host/xhci-dbg.o
AR drivers/input/built-in.a
CC drivers/acpi/acpi_platform.o
CC net/core/netclassid_cgroup.o
CC drivers/gpu/drm/i915/gt/gen7_renderclear.o
CC [M] net/netfilter/xt_LOG.o
CC kernel/nsproxy.o
AR drivers/net/ethernet/litex/built-in.a
CC drivers/acpi/acpica/rsmisc.o
CC net/ipv4/fib_frontend.o
CC fs/namei.o
CC fs/nfs/nfs4renewd.o
CC drivers/usb/host/xhci-trace.o
CC drivers/thermal/thermal_sysfs.o
CC lib/refcount.o
CC drivers/gpu/drm/i915/gt/gen8_engine_cs.o
CC fs/nfs/nfs4super.o
CC lib/rcuref.o
CC drivers/net/ethernet/intel/e1000e/nvm.o
CC [M] drivers/gpu/drm/xe/xe_gt_clock.o
CC arch/x86/kernel/smpboot.o
AR drivers/ptp/built-in.a
CC drivers/gpu/drm/drm_drv.o
CC mm/madvise.o
CC lib/usercopy.o
CC [M] drivers/gpu/drm/xe/xe_gt_freq.o
CC net/ipv6/sysctl_net_ipv6.o
CC net/core/dst_cache.o
CC fs/fcntl.o
CC drivers/acpi/acpi_pnp.o
CC drivers/md/md-autodetect.o
CC drivers/acpi/acpica/rsserial.o
CC fs/nfs/nfs4file.o
AR drivers/net/ethernet/marvell/octeon_ep/built-in.a
AR drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a
CC drivers/acpi/power.o
AR drivers/net/ethernet/marvell/octeontx2/built-in.a
AR drivers/net/ethernet/marvell/prestera/built-in.a
CC drivers/net/ethernet/marvell/sky2.o
CC kernel/notifier.o
CC lib/errseq.o
CC net/ipv4/fib_semantics.o
CC net/ipv4/fib_trie.o
CC net/sunrpc/svc_xprt.o
CC drivers/cpufreq/cpufreq.o
CC lib/bucket_locks.o
CC fs/ioctl.o
CC drivers/acpi/acpica/rsutils.o
CC drivers/cpufreq/freq_table.o
AR drivers/net/ethernet/mellanox/built-in.a
CC net/mac80211/cfg.o
CC [M] drivers/gpu/drm/xe/xe_gt_idle.o
CC arch/x86/kernel/tsc_sync.o
CC net/ipv6/xfrm6_policy.o
CC drivers/usb/host/xhci-debugfs.o
CC drivers/gpu/drm/drm_dumb_buffers.o
AR drivers/net/ethernet/intel/e1000/built-in.a
CC drivers/thermal/thermal_trip.o
CC [M] net/netfilter/xt_MASQUERADE.o
AR drivers/net/ethernet/meta/built-in.a
CC lib/generic-radix-tree.o
CC net/core/gro_cells.o
CC drivers/acpi/acpica/rsxface.o
CC lib/bitmap-str.o
CC drivers/gpu/drm/i915/gt/gen8_ppgtt.o
CC net/ipv4/fib_notifier.o
CC net/mac80211/ethtool.o
CC kernel/ksysfs.o
CC drivers/md/dm.o
CC drivers/thermal/thermal_helpers.o
CC net/mac80211/rx.o
CC net/ipv6/xfrm6_state.o
CC drivers/net/ethernet/intel/e1000e/phy.o
CC [M] drivers/gpu/drm/xe/xe_gt_mcr.o
CC drivers/cpuidle/governors/menu.o
CC drivers/cpuidle/governors/haltpoll.o
CC drivers/cpuidle/cpuidle.o
AR drivers/net/ethernet/micrel/built-in.a
CC net/core/failover.o
CC drivers/gpu/drm/drm_edid.o
CC drivers/cpuidle/driver.o
CC drivers/acpi/event.o
CC arch/x86/kernel/setup_percpu.o
CC drivers/net/ethernet/intel/e1000e/param.o
CC net/sunrpc/xprtmultipath.o
CC drivers/acpi/acpica/tbdata.o
CC [M] drivers/gpu/drm/xe/xe_gt_pagefault.o
AR drivers/net/ethernet/microchip/built-in.a
CC net/mac80211/spectmgmt.o
CC net/mac80211/tx.o
CC drivers/acpi/acpica/tbfadt.o
CC drivers/net/ethernet/intel/e1000e/ethtool.o
CC drivers/thermal/thermal_thresholds.o
CC drivers/cpufreq/cpufreq_performance.o
CC lib/string_helpers.o
CC drivers/cpufreq/cpufreq_userspace.o
AR drivers/mmc/built-in.a
CC drivers/cpufreq/cpufreq_ondemand.o
CC drivers/acpi/evged.o
CC net/mac80211/key.o
AR drivers/net/ethernet/mscc/built-in.a
CC net/sunrpc/stats.o
CC kernel/cred.o
CC drivers/md/dm-table.o
CC fs/nfs/delegation.o
CC arch/x86/kernel/mpparse.o
CC [M] net/netfilter/xt_addrtype.o
CC drivers/thermal/thermal_netlink.o
CC [M] drivers/gpu/drm/xe/xe_gt_sysfs.o
CC drivers/acpi/acpica/tbfind.o
CC drivers/usb/host/xhci-pci.o
CC drivers/cpuidle/governor.o
CC net/mac80211/util.o
CC drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
CC drivers/thermal/thermal_hwmon.o
CC drivers/md/dm-target.o
CC lib/hexdump.o
AR drivers/cpuidle/governors/built-in.a
CC kernel/reboot.o
CC drivers/gpu/drm/drm_eld.o
CC arch/x86/kernel/trace_clock.o
AR net/core/built-in.a
AR drivers/net/ethernet/myricom/built-in.a
CC drivers/acpi/acpica/tbinstal.o
CC drivers/thermal/gov_step_wise.o
CC drivers/cpuidle/sysfs.o
CC net/ipv6/xfrm6_input.o
CC drivers/gpu/drm/i915/gt/intel_context.o
AR drivers/ufs/built-in.a
CC arch/x86/kernel/trace.o
CC drivers/acpi/sysfs.o
CC kernel/async.o
CC fs/nfs/nfs4idmap.o
CC net/sunrpc/sysctl.o
CC lib/kstrtox.o
CC drivers/cpufreq/cpufreq_governor.o
CC net/ipv6/xfrm6_output.o
CC drivers/gpu/drm/drm_encoder.o
CC mm/page_io.o
CC [M] drivers/gpu/drm/xe/xe_gt_throttle.o
CC drivers/gpu/drm/drm_file.o
CC drivers/acpi/acpica/tbprint.o
CC drivers/cpuidle/poll_state.o
AR drivers/net/ethernet/natsemi/built-in.a
CC drivers/md/dm-linear.o
CC net/ipv6/xfrm6_protocol.o
CC net/ipv4/inet_fragment.o
CC arch/x86/kernel/rethook.o
CC drivers/cpufreq/cpufreq_governor_attr_set.o
CC drivers/gpu/drm/drm_fourcc.o
CC drivers/acpi/property.o
AR drivers/firmware/arm_ffa/built-in.a
AR drivers/firmware/arm_scmi/built-in.a
AR drivers/firmware/broadcom/built-in.a
CC drivers/net/ethernet/intel/e1000e/netdev.o
AR drivers/firmware/cirrus/test/built-in.a
AR drivers/firmware/cirrus/built-in.a
CC drivers/acpi/acpica/tbutils.o
AR drivers/firmware/meson/built-in.a
AR drivers/firmware/microchip/built-in.a
CC drivers/cpuidle/cpuidle-haltpoll.o
CC mm/swap_state.o
CC drivers/gpu/drm/drm_framebuffer.o
CC mm/swapfile.o
CC drivers/gpu/drm/drm_gem.o
CC drivers/firmware/efi/libstub/efi-stub-helper.o
CC lib/iomap.o
CC drivers/firmware/efi/efi-bgrt.o
CC drivers/firmware/efi/efi.o
CC drivers/gpu/drm/i915/gt/intel_context_sseu.o
CC drivers/gpu/drm/drm_ioctl.o
CC kernel/range.o
CC [M] drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
CC drivers/firmware/efi/vars.o
AR drivers/thermal/built-in.a
AR net/netfilter/built-in.a
CC drivers/net/ethernet/intel/e1000e/ptp.o
AR drivers/net/ethernet/neterion/built-in.a
CC arch/x86/kernel/vmcore_info_32.o
CC drivers/acpi/debugfs.o
CC drivers/cpufreq/acpi-cpufreq.o
CC drivers/acpi/acpica/tbxface.o
CC kernel/smpboot.o
AR drivers/cpuidle/built-in.a
AR drivers/usb/host/built-in.a
CC kernel/ucount.o
AR drivers/net/ethernet/marvell/built-in.a
CC drivers/acpi/acpica/tbxfload.o
AR drivers/usb/built-in.a
CC drivers/acpi/acpica/tbxfroot.o
AR drivers/firmware/imx/built-in.a
CC mm/swap_slots.o
CC drivers/acpi/acpica/utaddress.o
CC drivers/acpi/acpica/utalloc.o
CC [M] drivers/gpu/drm/xe/xe_gt_topology.o
CC arch/x86/kernel/machine_kexec_32.o
CC fs/nfs/callback.o
CC fs/readdir.o
CC net/ipv6/netfilter.o
AR net/sunrpc/built-in.a
CC net/mac80211/parse.o
CC net/ipv4/ping.o
CC drivers/firmware/efi/libstub/gop.o
CC drivers/md/dm-stripe.o
CC drivers/gpu/drm/drm_lease.o
CC drivers/acpi/acpica/utascii.o
CC [M] drivers/gpu/drm/xe/xe_guc.o
CC lib/iomap_copy.o
CC net/ipv6/proc.o
CC drivers/gpu/drm/drm_managed.o
CC fs/select.o
CC net/ipv6/syncookies.o
CC fs/dcache.o
AR drivers/crypto/stm32/built-in.a
AR drivers/net/ethernet/netronome/built-in.a
AR drivers/crypto/xilinx/built-in.a
CC mm/dmapool.o
AR drivers/crypto/hisilicon/built-in.a
AR drivers/net/ethernet/ni/built-in.a
CC fs/inode.o
CC drivers/acpi/acpi_lpat.o
CC kernel/regset.o
AR drivers/crypto/intel/keembay/built-in.a
CC kernel/ksyms_common.o
AR net/wireless/built-in.a
AR drivers/crypto/intel/ixp4xx/built-in.a
CC drivers/firmware/efi/reboot.o
AR drivers/crypto/intel/built-in.a
CC lib/devres.o
CC fs/nfs/callback_xdr.o
AR drivers/crypto/starfive/built-in.a
AR drivers/crypto/built-in.a
CC drivers/clocksource/acpi_pm.o
CC drivers/acpi/acpi_pcc.o
CC drivers/acpi/acpica/utbuffer.o
CC [M] drivers/gpu/drm/xe/xe_guc_ads.o
CC kernel/groups.o
CC lib/check_signature.o
CC net/mac80211/wme.o
CC drivers/firmware/efi/memattr.o
CC drivers/gpu/drm/i915/gt/intel_engine_cs.o
CC drivers/cpufreq/amd-pstate.o
AS arch/x86/kernel/relocate_kernel_32.o
CC net/ipv4/ip_tunnel_core.o
CC drivers/net/ethernet/nvidia/forcedeth.o
CC lib/interval_tree.o
CC arch/x86/kernel/crash_dump_32.o
CC mm/hugetlb.o
CC mm/mmu_notifier.o
CC [M] drivers/gpu/drm/xe/xe_guc_buf.o
CC fs/attr.o
CC drivers/acpi/acpica/utcksum.o
CC fs/nfs/callback_proc.o
CC drivers/cpufreq/amd-pstate-trace.o
CC drivers/cpufreq/intel_pstate.o
CC lib/assoc_array.o
CC arch/x86/kernel/crash.o
CC [M] drivers/gpu/drm/xe/xe_guc_capture.o
CC drivers/firmware/efi/libstub/secureboot.o
CC drivers/hid/usbhid/hid-core.o
CC drivers/firmware/efi/libstub/tpm.o
CC drivers/acpi/ac.o
CC drivers/hid/hid-core.o
CC drivers/md/dm-ioctl.o
CC mm/migrate.o
CC net/ipv4/gre_offload.o
AR drivers/net/ethernet/oki-semi/built-in.a
AR drivers/platform/x86/amd/built-in.a
AR drivers/platform/x86/intel/built-in.a
AR drivers/firmware/psci/built-in.a
CC drivers/platform/x86/wmi.o
CC fs/bad_inode.o
CC drivers/clocksource/i8253.o
CC drivers/acpi/button.o
CC drivers/acpi/acpica/utcopy.o
CC drivers/firmware/efi/libstub/file.o
AR drivers/net/ethernet/packetengines/built-in.a
CC fs/nfs/nfs4namespace.o
CC kernel/kcmp.o
CC drivers/mailbox/mailbox.o
CC drivers/hid/usbhid/hiddev.o
CC drivers/gpu/drm/drm_mm.o
CC drivers/hid/hid-input.o
AR drivers/clocksource/built-in.a
CC lib/bitrev.o
CC drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
CC net/ipv6/calipso.o
CC arch/x86/kernel/module.o
CC arch/x86/kernel/doublefault_32.o
CC drivers/hid/hid-quirks.o
AR drivers/platform/surface/built-in.a
CC mm/page_counter.o
CC drivers/acpi/fan_core.o
CC drivers/mailbox/pcc.o
CC drivers/gpu/drm/drm_mode_config.o
CC drivers/acpi/acpica/utexcep.o
CC drivers/hid/hid-debug.o
CC drivers/md/dm-io.o
AR drivers/perf/built-in.a
AR drivers/hwtracing/intel_th/built-in.a
CC drivers/md/dm-kcopyd.o
CC mm/hugetlb_cgroup.o
CC mm/early_ioremap.o
CC drivers/gpu/drm/drm_mode_object.o
CC drivers/acpi/acpica/utdebug.o
CC drivers/platform/x86/wmi-bmof.o
CC drivers/firmware/efi/libstub/mem.o
CC drivers/firmware/efi/tpm.o
CC drivers/gpu/drm/i915/gt/intel_engine_pm.o
AR drivers/net/ethernet/qlogic/built-in.a
CC drivers/hid/hidraw.o
CC net/ipv4/metrics.o
CC lib/crc-ccitt.o
CC drivers/md/dm-sysfs.o
AR drivers/android/built-in.a
CC drivers/acpi/fan_attr.o
AR drivers/nvmem/layouts/built-in.a
CC drivers/nvmem/core.o
CC kernel/freezer.o
CC fs/nfs/nfs4getroot.o
CC drivers/acpi/acpica/utdecode.o
CC drivers/firmware/efi/memmap.o
CC mm/secretmem.o
CC drivers/hid/hid-generic.o
AR drivers/firmware/qcom/built-in.a
AR drivers/mailbox/built-in.a
CC drivers/hid/usbhid/hid-pidff.o
CC drivers/gpu/drm/drm_modes.o
CC net/ipv4/netlink.o
CC lib/crc16.o
CC drivers/acpi/acpica/utdelete.o
CC drivers/gpu/drm/i915/gt/intel_engine_user.o
CC [M] drivers/gpu/drm/xe/xe_guc_ct.o
CC kernel/profile.o
CC arch/x86/kernel/early_printk.o
CC drivers/acpi/acpica/uterror.o
CC drivers/platform/x86/eeepc-laptop.o
CC drivers/acpi/fan_hwmon.o
CC drivers/firmware/efi/libstub/random.o
CC mm/hmm.o
AR drivers/firmware/smccc/built-in.a
CC drivers/firmware/efi/capsule.o
CC arch/x86/kernel/hpet.o
CC drivers/acpi/acpica/uteval.o
CC net/mac80211/chan.o
HOSTCC lib/gen_crc32table
CC drivers/firmware/efi/libstub/randomalloc.o
CC drivers/hid/hid-a4tech.o
CC [M] drivers/gpu/drm/xe/xe_guc_db_mgr.o
CC kernel/stacktrace.o
CC drivers/acpi/acpi_video.o
CC mm/memfd.o
CC arch/x86/kernel/amd_nb.o
CC drivers/platform/x86/p2sb.o
CC lib/xxhash.o
CC drivers/acpi/acpica/utglobal.o
CC drivers/firmware/efi/libstub/pci.o
CC drivers/firmware/efi/esrt.o
AR drivers/firmware/tegra/built-in.a
CC drivers/md/dm-stats.o
CC kernel/dma.o
CC drivers/firmware/efi/libstub/skip_spaces.o
CC kernel/smp.o
AR drivers/net/ethernet/qualcomm/emac/built-in.a
AR drivers/net/ethernet/qualcomm/built-in.a
CC drivers/acpi/video_detect.o
CC drivers/firmware/efi/libstub/lib-cmdline.o
CC net/ipv6/ah6.o
CC drivers/net/ethernet/realtek/8139too.o
CC net/mac80211/trace.o
AR drivers/cpufreq/built-in.a
CC [M] drivers/gpu/drm/xe/xe_guc_engine_activity.o
CC fs/file.o
CC drivers/gpu/drm/drm_modeset_lock.o
CC drivers/acpi/processor_driver.o
CC [M] drivers/gpu/drm/xe/xe_guc_hwconfig.o
CC arch/x86/kernel/amd_node.o
CC net/mac80211/mlme.o
CC drivers/acpi/acpica/uthex.o
CC net/ipv4/nexthop.o
CC drivers/net/ethernet/realtek/r8169_main.o
CC fs/nfs/nfs4client.o
CC fs/filesystems.o
CC kernel/uid16.o
AR drivers/firmware/xilinx/built-in.a
CC drivers/firmware/efi/runtime-wrappers.o
CC [M] drivers/gpu/drm/xe/xe_guc_id_mgr.o
AR drivers/nvmem/built-in.a
CC drivers/acpi/processor_thermal.o
CC net/mac80211/tdls.o
CC drivers/gpu/drm/drm_plane.o
CC kernel/kallsyms.o
CC fs/nfs/nfs4session.o
CC lib/genalloc.o
CC lib/percpu_counter.o
CC drivers/gpu/drm/drm_prime.o
CC drivers/acpi/processor_idle.o
CC drivers/firmware/efi/libstub/lib-ctype.o
CC drivers/acpi/acpica/utids.o
CC net/ipv6/esp6.o
CC drivers/firmware/efi/libstub/alignedmem.o
CC drivers/acpi/processor_throttling.o
CC drivers/gpu/drm/i915/gt/intel_execlists_submission.o
AR drivers/hid/usbhid/built-in.a
CC drivers/firmware/dmi_scan.o
CC net/ipv4/udp_tunnel_stub.o
CC net/mac80211/ocb.o
CC drivers/firmware/efi/capsule-loader.o
AR drivers/net/ethernet/renesas/built-in.a
CC drivers/firmware/efi/libstub/relocate.o
CC drivers/md/dm-rq.o
AR drivers/platform/x86/built-in.a
CC fs/namespace.o
AR drivers/platform/built-in.a
CC arch/x86/kernel/kvm.o
AR drivers/net/ethernet/nvidia/built-in.a
CC drivers/net/ethernet/realtek/r8169_firmware.o
CC fs/nfs/dns_resolve.o
CC lib/audit.o
CC drivers/hid/hid-apple.o
CC drivers/acpi/acpica/utinit.o
AR drivers/net/ethernet/intel/e1000e/built-in.a
CC net/mac80211/airtime.o
AR drivers/net/ethernet/intel/built-in.a
CC mm/ptdump.o
CC drivers/md/dm-io-rewind.o
CC drivers/hid/hid-belkin.o
CC net/mac80211/eht.o
CC drivers/gpu/drm/i915/gt/intel_ggtt.o
CC drivers/gpu/drm/drm_print.o
CC drivers/net/ethernet/realtek/r8169_phy_config.o
CC mm/execmem.o
CC drivers/acpi/processor_perflib.o
CC drivers/md/dm-builtin.o
CC drivers/hid/hid-cherry.o
CC drivers/firmware/dmi-id.o
AR drivers/net/ethernet/rdc/built-in.a
CC fs/nfs/nfs4trace.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
CC net/ipv6/sit.o
CC [M] drivers/gpu/drm/xe/xe_guc_klv_helpers.o
CC lib/syscall.o
CC drivers/firmware/efi/libstub/printk.o
CC drivers/acpi/acpica/utlock.o
CC kernel/acct.o
CC drivers/hid/hid-chicony.o
CC drivers/firmware/memmap.o
CC drivers/gpu/drm/i915/gt/intel_gt.o
CC [M] drivers/gpu/drm/xe/xe_guc_log.o
CC fs/nfs/nfs4sysctl.o
CC arch/x86/kernel/kvmclock.o
AR drivers/net/ethernet/rocker/built-in.a
CC arch/x86/kernel/paravirt.o
CC drivers/hid/hid-cypress.o
CC drivers/firmware/efi/libstub/vsprintf.o
CC net/ipv6/addrconf_core.o
CC drivers/gpu/drm/drm_property.o
CC drivers/md/dm-raid1.o
CC arch/x86/kernel/pvclock.o
CC drivers/acpi/acpica/utmath.o
CC kernel/vmcore_info.o
CC drivers/acpi/container.o
CC drivers/gpu/drm/drm_rect.o
CC arch/x86/kernel/pcspeaker.o
CC drivers/firmware/efi/libstub/x86-stub.o
CC drivers/firmware/efi/earlycon.o
CC kernel/elfcorehdr.o
CC [M] drivers/gpu/drm/xe/xe_guc_pc.o
CC net/ipv4/ip_tunnel.o
CC drivers/firmware/efi/libstub/smbios.o
AR mm/built-in.a
CC drivers/gpu/drm/drm_syncobj.o
CC net/mac80211/led.o
CC fs/seq_file.o
CC lib/errname.o
CC arch/x86/kernel/check.o
CC lib/nlattr.o
CC kernel/crash_reserve.o
CC [M] drivers/gpu/drm/xe/xe_guc_submit.o
CC drivers/acpi/acpica/utmisc.o
CC net/ipv6/exthdrs_core.o
CC arch/x86/kernel/uprobes.o
CC net/mac80211/pm.o
AR drivers/net/ethernet/samsung/built-in.a
CC fs/xattr.o
CC lib/cpu_rmap.o
CC drivers/gpu/drm/drm_sysfs.o
CC kernel/kexec_core.o
CC drivers/hid/hid-ezkey.o
CC [M] drivers/gpu/drm/xe/xe_heci_gsc.o
CC kernel/crash_core.o
CC lib/dynamic_queue_limits.o
AR drivers/net/ethernet/seeq/built-in.a
STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
CC drivers/acpi/thermal_lib.o
CC arch/x86/kernel/perf_regs.o
CC lib/glob.o
CC drivers/acpi/thermal.o
CC drivers/hid/hid-gyration.o
CC net/mac80211/rc80211_minstrel_ht.o
CC drivers/acpi/acpica/utmutex.o
CC drivers/gpu/drm/drm_trace_points.o
CC fs/libfs.o
CC arch/x86/kernel/tracepoint.o
AR drivers/firmware/efi/built-in.a
CC arch/x86/kernel/itmt.o
CC drivers/hid/hid-ite.o
STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
STUBCPY drivers/firmware/efi/libstub/file.stub.o
CC kernel/kexec.o
STUBCPY drivers/firmware/efi/libstub/gop.stub.o
AR drivers/net/ethernet/silan/built-in.a
STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
CC net/ipv4/sysctl_net_ipv4.o
STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
STUBCPY drivers/firmware/efi/libstub/mem.stub.o
STUBCPY drivers/firmware/efi/libstub/pci.stub.o
CC net/mac80211/wbrf.o
STUBCPY drivers/firmware/efi/libstub/printk.stub.o
STUBCPY drivers/firmware/efi/libstub/random.stub.o
STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
STUBCPY drivers/firmware/efi/libstub/smbios.stub.o
CC [M] drivers/gpu/drm/xe/xe_huc.o
CC drivers/gpu/drm/drm_vblank.o
STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
CC drivers/md/dm-log.o
STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
AR drivers/firmware/efi/libstub/lib.a
CC arch/x86/kernel/umip.o
CC drivers/acpi/acpica/utnonansi.o
AR drivers/firmware/built-in.a
CC kernel/utsname.o
CC drivers/md/dm-region-hash.o
CC net/ipv6/ip6_checksum.o
CC drivers/hid/hid-kensington.o
AR drivers/net/ethernet/sis/built-in.a
CC drivers/acpi/acpica/utobject.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine.o
CC kernel/pid_namespace.o
CC drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
CC net/ipv4/proc.o
CC arch/x86/kernel/unwind_frame.o
CC drivers/md/dm-zero.o
AR drivers/net/ethernet/sfc/built-in.a
CC [M] drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
CC fs/fs-writeback.o
CC drivers/gpu/drm/drm_vblank_work.o
CC lib/strncpy_from_user.o
CC net/ipv4/fib_rules.o
CC fs/pnode.o
CC drivers/acpi/acpica/utosi.o
AR drivers/net/ethernet/smsc/built-in.a
CC drivers/acpi/nhlt.o
CC kernel/stop_machine.o
CC net/ipv4/ipmr.o
CC lib/strnlen_user.o
CC drivers/gpu/drm/drm_vma_manager.o
CC [M] drivers/gpu/drm/xe/xe_hw_engine_group.o
CC fs/splice.o
CC drivers/hid/hid-lg.o
CC lib/net_utils.o
AR drivers/net/ethernet/socionext/built-in.a
AR drivers/net/ethernet/stmicro/built-in.a
CC net/ipv6/ip6_icmp.o
CC net/ipv4/ipmr_base.o
CC drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o
CC fs/sync.o
CC kernel/audit.o
AR drivers/net/ethernet/realtek/built-in.a
AR drivers/net/ethernet/sun/built-in.a
AR drivers/net/ethernet/tehuti/built-in.a
CC drivers/hid/hid-lgff.o
AR drivers/net/ethernet/ti/built-in.a
AR drivers/net/ethernet/vertexcom/built-in.a
AR drivers/net/ethernet/via/built-in.a
AR drivers/net/ethernet/wangxun/built-in.a
CC drivers/acpi/acpica/utownerid.o
CC kernel/auditfilter.o
AR drivers/net/ethernet/wiznet/built-in.a
AR drivers/net/ethernet/xilinx/built-in.a
CC net/ipv6/output_core.o
AR drivers/net/ethernet/xircom/built-in.a
AR drivers/net/ethernet/synopsys/built-in.a
CC net/ipv4/syncookies.o
AR drivers/net/ethernet/pensando/built-in.a
AR drivers/net/ethernet/built-in.a
CC drivers/acpi/acpi_memhotplug.o
CC fs/utimes.o
CC kernel/auditsc.o
AR arch/x86/kernel/built-in.a
CC [M] drivers/gpu/drm/xe/xe_hw_fence.o
AR drivers/md/built-in.a
CC drivers/acpi/acpica/utpredef.o
AR arch/x86/built-in.a
CC net/ipv4/tunnel4.o
AR drivers/net/built-in.a
CC drivers/hid/hid-lg4ff.o
CC drivers/gpu/drm/drm_writeback.o
CC net/ipv4/ipconfig.o
CC drivers/gpu/drm/drm_panel.o
CC drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
CC net/ipv6/protocol.o
CC drivers/acpi/acpica/utresdecode.o
CC fs/d_path.o
CC fs/stack.o
CC drivers/acpi/ioapic.o
CC net/ipv4/netfilter.o
CC lib/sg_pool.o
CC net/ipv4/tcp_cubic.o
CC net/ipv4/tcp_sigpool.o
CC drivers/acpi/battery.o
CC drivers/hid/hid-lg-g15.o
CC net/ipv4/cipso_ipv4.o
CC fs/fs_struct.o
CC drivers/gpu/drm/drm_pci.o
CC drivers/gpu/drm/drm_debugfs.o
CC net/ipv6/ip6_offload.o
CC lib/stackdepot.o
CC kernel/audit_watch.o
CC drivers/acpi/acpica/utresrc.o
CC net/ipv4/xfrm4_policy.o
CC drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
CC drivers/hid/hid-microsoft.o
CC drivers/hid/hid-monterey.o
CC net/ipv6/tcpv6_offload.o
CC net/ipv4/xfrm4_state.o
AR fs/nfs/built-in.a
CC lib/asn1_decoder.o
CC drivers/gpu/drm/drm_debugfs_crc.o
CC net/ipv6/exthdrs_offload.o
CC [M] drivers/gpu/drm/xe/xe_irq.o
CC drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
CC drivers/hid/hid-ntrig.o
GEN lib/oid_registry_data.c
CC kernel/audit_fsnotify.o
CC drivers/gpu/drm/drm_panel_orientation_quirks.o
CC drivers/hid/hid-pl.o
CC drivers/acpi/acpica/utstate.o
CC net/ipv6/inet6_hashtables.o
CC drivers/gpu/drm/i915/gt/intel_gt_irq.o
CC kernel/audit_tree.o
CC net/ipv6/mcast_snoop.o
CC lib/ucs2_string.o
CC [M] drivers/gpu/drm/xe/xe_lrc.o
CC drivers/acpi/acpica/utstring.o
CC net/ipv4/xfrm4_input.o
CC drivers/acpi/bgrt.o
CC kernel/kprobes.o
CC drivers/gpu/drm/drm_buddy.o
CC net/ipv4/xfrm4_output.o
CC drivers/acpi/spcr.o
CC drivers/acpi/acpica/utstrsuppt.o
CC lib/sbitmap.o
CC drivers/gpu/drm/i915/gt/intel_gt_mcr.o
CC kernel/seccomp.o
CC lib/group_cpus.o
CC drivers/acpi/acpica/utstrtoul64.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm.o
CC net/ipv4/xfrm4_protocol.o
CC kernel/relay.o
CC drivers/acpi/acpica/utxface.o
CC [M] drivers/gpu/drm/xe/xe_migrate.o
CC kernel/utsname_sysctl.o
CC drivers/gpu/drm/drm_gem_shmem_helper.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
CC fs/statfs.o
CC lib/fw_table.o
CC [M] drivers/gpu/drm/xe/xe_mmio.o
CC drivers/hid/hid-petalynx.o
CC drivers/hid/hid-redragon.o
CC drivers/acpi/acpica/utxfinit.o
CC [M] drivers/gpu/drm/xe/xe_mocs.o
CC drivers/hid/hid-samsung.o
CC drivers/acpi/acpica/utxferror.o
CC drivers/gpu/drm/drm_atomic_helper.o
CC drivers/acpi/acpica/utxfmutex.o
CC fs/fs_pin.o
CC fs/nsfs.o
CC [M] drivers/gpu/drm/xe/xe_module.o
CC drivers/hid/hid-sony.o
CC kernel/delayacct.o
CC fs/fs_types.o
CC kernel/taskstats.o
CC kernel/tsacct.o
CC [M] drivers/gpu/drm/xe/xe_oa.o
CC drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
AR lib/lib.a
CC [M] drivers/gpu/drm/xe/xe_observation.o
CC fs/fs_context.o
CC drivers/hid/hid-sunplus.o
CC kernel/tracepoint.o
CC drivers/gpu/drm/drm_atomic_state_helper.o
CC [M] drivers/gpu/drm/xe/xe_pat.o
CC [M] drivers/gpu/drm/xe/xe_pci.o
CC drivers/gpu/drm/i915/gt/intel_gt_requests.o
CC fs/fs_parser.o
AR drivers/acpi/acpica/built-in.a
AR drivers/acpi/built-in.a
GEN lib/crc32table.h
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
CC drivers/hid/hid-topseed.o
CC [M] drivers/gpu/drm/xe/xe_pcode.o
CC drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
CC fs/fsopen.o
CC lib/oid_registry.o
CC kernel/irq_work.o
CC drivers/gpu/drm/drm_bridge_helper.o
CC fs/init.o
CC [M] drivers/gpu/drm/xe/xe_pm.o
CC drivers/gpu/drm/i915/gt/intel_gtt.o
CC fs/kernel_read_file.o
CC [M] drivers/gpu/drm/xe/xe_preempt_fence.o
CC drivers/gpu/drm/i915/gt/intel_llc.o
CC drivers/gpu/drm/drm_crtc_helper.o
AR net/ipv6/built-in.a
CC fs/mnt_idmapping.o
CC drivers/gpu/drm/i915/gt/intel_lrc.o
CC drivers/gpu/drm/i915/gt/intel_migrate.o
CC kernel/static_call.o
CC [M] drivers/gpu/drm/xe/xe_pt.o
CC fs/remap_range.o
AR net/ipv4/built-in.a
CC drivers/gpu/drm/drm_damage_helper.o
CC kernel/padata.o
CC drivers/gpu/drm/i915/gt/intel_mocs.o
CC lib/crc32.o
CC [M] drivers/gpu/drm/xe/xe_pt_walk.o
CC fs/pidfs.o
CC drivers/gpu/drm/drm_flip_work.o
CC [M] drivers/gpu/drm/xe/xe_pxp.o
CC kernel/jump_label.o
CC fs/buffer.o
CC drivers/gpu/drm/drm_format_helper.o
CC drivers/gpu/drm/i915/gt/intel_ppgtt.o
CC drivers/gpu/drm/drm_gem_atomic_helper.o
CC kernel/context_tracking.o
CC drivers/gpu/drm/drm_gem_framebuffer_helper.o
CC kernel/iomem.o
CC drivers/gpu/drm/drm_kms_helper_common.o
CC fs/mpage.o
CC [M] drivers/gpu/drm/xe/xe_pxp_debugfs.o
CC drivers/gpu/drm/i915/gt/intel_rc6.o
CC fs/proc_namespace.o
CC drivers/gpu/drm/drm_modeset_helper.o
AR drivers/hid/built-in.a
CC kernel/rseq.o
CC [M] drivers/gpu/drm/xe/xe_pxp_submit.o
AR lib/built-in.a
CC fs/direct-io.o
CC drivers/gpu/drm/i915/gt/intel_region_lmem.o
CC [M] drivers/gpu/drm/xe/xe_query.o
CC drivers/gpu/drm/i915/gt/intel_renderstate.o
CC drivers/gpu/drm/drm_plane_helper.o
CC drivers/gpu/drm/i915/gt/intel_reset.o
CC fs/eventpoll.o
CC drivers/gpu/drm/drm_probe_helper.o
CC [M] drivers/gpu/drm/xe/xe_range_fence.o
CC drivers/gpu/drm/i915/gt/intel_ring.o
CC [M] drivers/gpu/drm/xe/xe_reg_sr.o
CC fs/anon_inodes.o
CC [M] drivers/gpu/drm/xe/xe_reg_whitelist.o
CC drivers/gpu/drm/drm_self_refresh_helper.o
CC fs/signalfd.o
CC [M] drivers/gpu/drm/xe/xe_ring_ops.o
CC [M] drivers/gpu/drm/xe/xe_rtp.o
CC [M] drivers/gpu/drm/xe/xe_sa.o
CC drivers/gpu/drm/drm_simple_kms_helper.o
CC drivers/gpu/drm/i915/gt/intel_ring_submission.o
CC fs/timerfd.o
CC drivers/gpu/drm/bridge/panel.o
CC [M] drivers/gpu/drm/xe/xe_sched_job.o
CC drivers/gpu/drm/i915/gt/intel_rps.o
CC fs/eventfd.o
CC fs/aio.o
CC [M] drivers/gpu/drm/xe/xe_shrinker.o
CC drivers/gpu/drm/i915/gt/intel_sa_media.o
CC fs/locks.o
CC [M] drivers/gpu/drm/xe/xe_step.o
CC drivers/gpu/drm/drm_mipi_dsi.o
CC fs/binfmt_misc.o
CC drivers/gpu/drm/i915/gt/intel_sseu.o
CC fs/binfmt_script.o
CC [M] drivers/gpu/drm/drm_exec.o
CC [M] drivers/gpu/drm/xe/xe_survivability_mode.o
CC drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
CC [M] drivers/gpu/drm/drm_gpuvm.o
CC [M] drivers/gpu/drm/xe/xe_sync.o
CC drivers/gpu/drm/i915/gt/intel_timeline.o
CC fs/binfmt_elf.o
CC fs/mbcache.o
AR kernel/built-in.a
CC fs/posix_acl.o
CC [M] drivers/gpu/drm/drm_suballoc.o
CC [M] drivers/gpu/drm/xe/xe_tile.o
CC fs/coredump.o
CC drivers/gpu/drm/i915/gt/intel_tlb.o
CC [M] drivers/gpu/drm/drm_gem_ttm_helper.o
CC [M] drivers/gpu/drm/xe/xe_tile_sysfs.o
CC drivers/gpu/drm/i915/gt/intel_wopcm.o
CC drivers/gpu/drm/i915/gt/intel_workarounds.o
CC drivers/gpu/drm/i915/gt/shmem_utils.o
CC fs/drop_caches.o
CC fs/sysctls.o
CC [M] drivers/gpu/drm/xe/xe_trace.o
CC drivers/gpu/drm/i915/gt/sysfs_engines.o
CC drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
CC fs/fhandle.o
CC [M] drivers/gpu/drm/xe/xe_trace_bo.o
CC [M] drivers/gpu/drm/xe/xe_trace_guc.o
CC [M] drivers/gpu/drm/xe/xe_trace_lrc.o
CC [M] drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
CC [M] drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
AR net/mac80211/built-in.a
CC drivers/gpu/drm/i915/gt/gen6_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
CC [M] drivers/gpu/drm/xe/xe_tuning.o
AR net/built-in.a
CC drivers/gpu/drm/i915/gt/gen7_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_uc.o
CC drivers/gpu/drm/i915/gt/gen8_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_uc_fw.o
CC [M] drivers/gpu/drm/xe/xe_vm.o
LD [M] drivers/gpu/drm/drm_suballoc_helper.o
CC drivers/gpu/drm/i915/gt/gen9_renderstate.o
CC [M] drivers/gpu/drm/xe/xe_vram.o
CC drivers/gpu/drm/i915/gem/i915_gem_busy.o
CC [M] drivers/gpu/drm/xe/xe_vram_freq.o
CC drivers/gpu/drm/i915/gem/i915_gem_clflush.o
CC [M] drivers/gpu/drm/xe/xe_vsec.o
CC drivers/gpu/drm/i915/gem/i915_gem_context.o
LD [M] drivers/gpu/drm/drm_ttm_helper.o
CC [M] drivers/gpu/drm/xe/xe_wa.o
CC drivers/gpu/drm/i915/gem/i915_gem_create.o
CC [M] drivers/gpu/drm/xe/xe_wait_user_fence.o
CC [M] drivers/gpu/drm/xe/xe_wopcm.o
CC drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
CC drivers/gpu/drm/i915/gem/i915_gem_domain.o
CC drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
CC [M] drivers/gpu/drm/xe/xe_hmm.o
CC drivers/gpu/drm/i915/gem/i915_gem_internal.o
CC [M] drivers/gpu/drm/xe/xe_hwmon.o
CC drivers/gpu/drm/i915/gem/i915_gem_lmem.o
CC drivers/gpu/drm/i915/gem/i915_gem_mman.o
CC [M] drivers/gpu/drm/xe/xe_pmu.o
CC drivers/gpu/drm/i915/gem/i915_gem_object.o
CC drivers/gpu/drm/i915/gem/i915_gem_pages.o
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf.o
CC drivers/gpu/drm/i915/gem/i915_gem_phys.o
CC [M] drivers/gpu/drm/xe/xe_guc_relay.o
CC drivers/gpu/drm/i915/gem/i915_gem_pm.o
CC drivers/gpu/drm/i915/gem/i915_gem_region.o
CC drivers/gpu/drm/i915/gem/i915_gem_shmem.o
CC [M] drivers/gpu/drm/xe/xe_memirq.o
CC [M] drivers/gpu/drm/xe/xe_sriov.o
CC drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
CC [M] drivers/gpu/drm/xe/xe_sriov_vf.o
CC drivers/gpu/drm/i915/gem/i915_gem_stolen.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_irq.o
CC drivers/gpu/drm/i915/gem/i915_gem_throttle.o
CC drivers/gpu/drm/i915/gem/i915_gem_tiling.o
CC [M] drivers/gpu/drm/xe/display/ext/i915_utils.o
CC [M] drivers/gpu/drm/xe/display/intel_bo.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm.o
CC [M] drivers/gpu/drm/xe/display/intel_fb_bo.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
CC [M] drivers/gpu/drm/xe/display/intel_fbdev_fb.o
CC drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
CC [M] drivers/gpu/drm/xe/display/xe_display.o
CC [M] drivers/gpu/drm/xe/display/xe_display_misc.o
CC [M] drivers/gpu/drm/xe/display/xe_display_rpm.o
CC [M] drivers/gpu/drm/xe/display/xe_display_rps.o
CC [M] drivers/gpu/drm/xe/display/xe_display_wa.o
CC [M] drivers/gpu/drm/xe/display/xe_dsb_buffer.o
CC [M] drivers/gpu/drm/xe/display/xe_fb_pin.o
CC drivers/gpu/drm/i915/gem/i915_gem_userptr.o
CC [M] drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
CC [M] drivers/gpu/drm/xe/display/xe_plane_initial.o
CC drivers/gpu/drm/i915/gem/i915_gem_wait.o
CC [M] drivers/gpu/drm/xe/display/xe_tdf.o
CC drivers/gpu/drm/i915/gem/i915_gemfs.o
CC drivers/gpu/drm/i915/i915_active.o
CC drivers/gpu/drm/i915/i915_cmd_parser.o
AR fs/built-in.a
CC [M] drivers/gpu/drm/xe/i915-soc/intel_dram.o
CC drivers/gpu/drm/i915/i915_deps.o
CC drivers/gpu/drm/i915/i915_gem.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_pch.o
CC drivers/gpu/drm/i915/i915_gem_evict.o
CC [M] drivers/gpu/drm/xe/i915-soc/intel_rom.o
CC [M] drivers/gpu/drm/xe/i915-display/icl_dsi.o
CC drivers/gpu/drm/i915/i915_gem_gtt.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_alpm.o
CC drivers/gpu/drm/i915/i915_gem_ww.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
CC drivers/gpu/drm/i915/i915_query.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_backlight.o
CC drivers/gpu/drm/i915/i915_request.o
CC drivers/gpu/drm/i915/i915_scheduler.o
CC drivers/gpu/drm/i915/i915_trace_points.o
CC drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bios.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_bw.o
CC drivers/gpu/drm/i915/i915_vma.o
CC drivers/gpu/drm/i915/i915_vma_resource.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cdclk.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cmtg.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_color.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
CC drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_connector.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cursor.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_conversion.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_device.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_driver.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_irq.o
CC drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_params.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
CC drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_trace.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_wa.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
CC drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
CC drivers/gpu/drm/i915/gt/intel_gsc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc.o
CC drivers/gpu/drm/i915/i915_hwmon.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o
CC drivers/gpu/drm/i915/display/hsw_ips.o
CC drivers/gpu/drm/i915/display/i9xx_plane.o
CC drivers/gpu/drm/i915/display/i9xx_display_sr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp.o
CC drivers/gpu/drm/i915/display/i9xx_wm.o
CC drivers/gpu/drm/i915/display/intel_alpm.o
CC drivers/gpu/drm/i915/display/intel_atomic.o
CC drivers/gpu/drm/i915/display/intel_atomic_plane.o
CC drivers/gpu/drm/i915/display/intel_audio.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_bios.o
CC drivers/gpu/drm/i915/display/intel_bo.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
CC drivers/gpu/drm/i915/display/intel_bw.o
CC drivers/gpu/drm/i915/display/intel_cdclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
CC drivers/gpu/drm/i915/display/intel_cmtg.o
CC drivers/gpu/drm/i915/display/intel_color.o
CC drivers/gpu/drm/i915/display/intel_combo_phy.o
CC drivers/gpu/drm/i915/display/intel_connector.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dp_test.o
CC drivers/gpu/drm/i915/display/intel_crtc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll.o
CC drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dpt_common.o
CC drivers/gpu/drm/i915/display/intel_cursor.o
CC drivers/gpu/drm/i915/display/intel_display.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_drrs.o
CC drivers/gpu/drm/i915/display/intel_display_conversion.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsb.o
CC drivers/gpu/drm/i915/display/intel_display_driver.o
CC drivers/gpu/drm/i915/display/intel_display_irq.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/i915/display/intel_display_params.o
CC drivers/gpu/drm/i915/display/intel_display_power.o
CC drivers/gpu/drm/i915/display/intel_display_power_map.o
CC drivers/gpu/drm/i915/display/intel_display_power_well.o
CC drivers/gpu/drm/i915/display/intel_display_reset.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_encoder.o
CC drivers/gpu/drm/i915/display/intel_display_rpm.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fb.o
CC drivers/gpu/drm/i915/display/intel_display_rps.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fbc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fdi.o
CC drivers/gpu/drm/i915/display/intel_display_snapshot.o
CC drivers/gpu/drm/i915/display/intel_display_wa.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
CC drivers/gpu/drm/i915/display/intel_dmc.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_dmc_wl.o
CC drivers/gpu/drm/i915/display/intel_dpio_phy.o
CC drivers/gpu/drm/i915/display/intel_dpll.o
CC drivers/gpu/drm/i915/display/intel_dpll_mgr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_global_state.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_dpt.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_dpt_common.o
CC drivers/gpu/drm/i915/display/intel_drrs.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hdmi.o
CC drivers/gpu/drm/i915/display/intel_dsb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug.o
CC drivers/gpu/drm/i915/display/intel_dsb_buffer.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
CC drivers/gpu/drm/i915/display/intel_fb.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_hti.o
CC drivers/gpu/drm/i915/display/intel_fb_bo.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_link_bw.o
CC drivers/gpu/drm/i915/display/intel_fb_pin.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_lspcon.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o
CC drivers/gpu/drm/i915/display/intel_fbc.o
CC drivers/gpu/drm/i915/display/intel_fdi.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
CC drivers/gpu/drm/i915/display/intel_fifo_underrun.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_frontbuffer.o
CC drivers/gpu/drm/i915/display/intel_global_state.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pfit.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pps.o
CC drivers/gpu/drm/i915/display/intel_hdcp.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
CC drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_psr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
CC drivers/gpu/drm/i915/display/intel_hotplug.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_quirks.o
CC drivers/gpu/drm/i915/display/intel_hotplug_irq.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_hdmi_pll.o
CC drivers/gpu/drm/i915/display/intel_hti.o
CC drivers/gpu/drm/i915/display/intel_link_bw.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_load_detect.o
CC drivers/gpu/drm/i915/display/intel_lpe_audio.o
CC drivers/gpu/drm/i915/display/intel_modeset_lock.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_tc.o
CC drivers/gpu/drm/i915/display/intel_modeset_setup.o
CC drivers/gpu/drm/i915/display/intel_modeset_verify.o
CC drivers/gpu/drm/i915/display/intel_overlay.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vblank.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vdsc.o
CC drivers/gpu/drm/i915/display/intel_pch_display.o
CC drivers/gpu/drm/i915/display/intel_pch_refclk.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vga.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_vrr.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_wm.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_scaler.o
CC drivers/gpu/drm/i915/display/intel_plane_initial.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
CC [M] drivers/gpu/drm/xe/i915-display/skl_watermark.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_pmdemand.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_opregion.o
CC drivers/gpu/drm/i915/display/intel_psr.o
CC [M] drivers/gpu/drm/xe/xe_debugfs.o
CC drivers/gpu/drm/i915/display/intel_quirks.o
CC [M] drivers/gpu/drm/xe/xe_gt_debugfs.o
CC drivers/gpu/drm/i915/display/intel_sprite.o
CC drivers/gpu/drm/i915/display/intel_sprite_uapi.o
CC [M] drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o
CC drivers/gpu/drm/i915/display/intel_tc.o
CC drivers/gpu/drm/i915/display/intel_vblank.o
CC drivers/gpu/drm/i915/display/intel_vga.o
CC [M] drivers/gpu/drm/xe/xe_gt_stats.o
CC [M] drivers/gpu/drm/xe/xe_guc_debugfs.o
CC drivers/gpu/drm/i915/display/intel_wm.o
CC [M] drivers/gpu/drm/xe/xe_huc_debugfs.o
CC [M] drivers/gpu/drm/xe/xe_uc_debugfs.o
CC drivers/gpu/drm/i915/display/skl_scaler.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/skl_universal_plane.o
CC drivers/gpu/drm/i915/display/skl_watermark.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o
CC drivers/gpu/drm/i915/display/intel_acpi.o
CC drivers/gpu/drm/i915/display/intel_opregion.o
CC [M] drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs.o
CC drivers/gpu/drm/i915/display/intel_display_debugfs_params.o
CC drivers/gpu/drm/i915/display/intel_pipe_crc.o
CC drivers/gpu/drm/i915/display/dvo_ch7017.o
CC drivers/gpu/drm/i915/display/dvo_ch7xxx.o
CC drivers/gpu/drm/i915/display/dvo_ivch.o
CC drivers/gpu/drm/i915/display/dvo_ns2501.o
CC drivers/gpu/drm/i915/display/dvo_sil164.o
CC drivers/gpu/drm/i915/display/dvo_tfp410.o
CC drivers/gpu/drm/i915/display/g4x_dp.o
CC drivers/gpu/drm/i915/display/g4x_hdmi.o
CC drivers/gpu/drm/i915/display/icl_dsi.o
CC drivers/gpu/drm/i915/display/intel_backlight.o
CC drivers/gpu/drm/i915/display/intel_crt.o
CC drivers/gpu/drm/i915/display/intel_cx0_phy.o
CC drivers/gpu/drm/i915/display/intel_ddi.o
CC drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
CC drivers/gpu/drm/i915/display/intel_display_device.o
CC drivers/gpu/drm/i915/display/intel_display_trace.o
CC drivers/gpu/drm/i915/display/intel_dkl_phy.o
CC drivers/gpu/drm/i915/display/intel_dp.o
CC drivers/gpu/drm/i915/display/intel_dp_aux.o
CC drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
CC drivers/gpu/drm/i915/display/intel_dp_hdcp.o
CC drivers/gpu/drm/i915/display/intel_dp_link_training.o
CC drivers/gpu/drm/i915/display/intel_dp_mst.o
CC drivers/gpu/drm/i915/display/intel_dp_test.o
CC drivers/gpu/drm/i915/display/intel_dsi.o
CC drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
CC drivers/gpu/drm/i915/display/intel_dsi_vbt.o
CC drivers/gpu/drm/i915/display/intel_dvo.o
CC drivers/gpu/drm/i915/display/intel_encoder.o
CC drivers/gpu/drm/i915/display/intel_gmbus.o
CC drivers/gpu/drm/i915/display/intel_hdmi.o
CC drivers/gpu/drm/i915/display/intel_lspcon.o
CC drivers/gpu/drm/i915/display/intel_lvds.o
CC drivers/gpu/drm/i915/display/intel_panel.o
CC drivers/gpu/drm/i915/display/intel_pfit.o
CC drivers/gpu/drm/i915/display/intel_pps.o
CC drivers/gpu/drm/i915/display/intel_qp_tables.o
CC drivers/gpu/drm/i915/display/intel_sdvo.o
CC drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.o
CC drivers/gpu/drm/i915/display/intel_snps_phy.o
CC drivers/gpu/drm/i915/display/intel_tv.o
CC drivers/gpu/drm/i915/display/intel_vdsc.o
CC drivers/gpu/drm/i915/display/intel_vrr.o
CC drivers/gpu/drm/i915/display/vlv_dsi.o
CC drivers/gpu/drm/i915/display/vlv_dsi_pll.o
CC drivers/gpu/drm/i915/i915_perf.o
CC drivers/gpu/drm/i915/pxp/intel_pxp.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
CC drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
CC drivers/gpu/drm/i915/i915_gpu_error.o
CC drivers/gpu/drm/i915/i915_vgpu.o
LD [M] drivers/gpu/drm/xe/xe.o
AR drivers/gpu/drm/i915/built-in.a
AR drivers/gpu/drm/built-in.a
AR drivers/gpu/built-in.a
AR drivers/built-in.a
AR built-in.a
AR vmlinux.a
LD vmlinux.o
OBJCOPY modules.builtin.modinfo
GEN modules.builtin
MODPOST Module.symvers
CC .vmlinux.export.o
CC [M] fs/efivarfs/efivarfs.mod.o
CC [M] .module-common.o
CC [M] drivers/gpu/drm/drm_exec.mod.o
CC [M] drivers/gpu/drm/drm_gpuvm.mod.o
CC [M] drivers/gpu/drm/drm_suballoc_helper.mod.o
CC [M] drivers/gpu/drm/drm_ttm_helper.mod.o
CC [M] drivers/gpu/drm/scheduler/gpu-sched.mod.o
CC [M] drivers/gpu/drm/xe/xe.mod.o
CC [M] drivers/thermal/intel/x86_pkg_temp_thermal.mod.o
CC [M] net/netfilter/nf_log_syslog.mod.o
CC [M] net/netfilter/xt_mark.mod.o
CC [M] net/netfilter/xt_nat.mod.o
CC [M] net/netfilter/xt_LOG.mod.o
CC [M] net/netfilter/xt_MASQUERADE.mod.o
CC [M] net/netfilter/xt_addrtype.mod.o
CC [M] net/ipv4/netfilter/iptable_nat.mod.o
LD [M] fs/efivarfs/efivarfs.ko
LD [M] drivers/gpu/drm/drm_gpuvm.ko
LD [M] drivers/gpu/drm/scheduler/gpu-sched.ko
LD [M] net/netfilter/xt_mark.ko
LD [M] net/netfilter/xt_nat.ko
LD [M] net/netfilter/nf_log_syslog.ko
LD [M] drivers/gpu/drm/drm_exec.ko
LD [M] net/netfilter/xt_MASQUERADE.ko
LD [M] drivers/gpu/drm/drm_suballoc_helper.ko
LD [M] net/ipv4/netfilter/iptable_nat.ko
LD [M] net/netfilter/xt_addrtype.ko
LD [M] net/netfilter/xt_LOG.ko
LD [M] drivers/thermal/intel/x86_pkg_temp_thermal.ko
LD [M] drivers/gpu/drm/xe/xe.ko
LD [M] drivers/gpu/drm/drm_ttm_helper.ko
UPD include/generated/utsversion.h
CC init/version-timestamp.o
KSYMS .tmp_vmlinux0.kallsyms.S
AS .tmp_vmlinux0.kallsyms.o
LD .tmp_vmlinux1
NM .tmp_vmlinux1.syms
KSYMS .tmp_vmlinux1.kallsyms.S
AS .tmp_vmlinux1.kallsyms.o
LD .tmp_vmlinux2
NM .tmp_vmlinux2.syms
KSYMS .tmp_vmlinux2.kallsyms.S
AS .tmp_vmlinux2.kallsyms.o
LD vmlinux
NM System.map
SORTTAB vmlinux
RELOCS arch/x86/boot/compressed/vmlinux.relocs
RSTRIP vmlinux
CC arch/x86/boot/a20.o
AS arch/x86/boot/bioscall.o
CC arch/x86/boot/cmdline.o
AS arch/x86/boot/copy.o
HOSTCC arch/x86/boot/mkcpustr
CC arch/x86/boot/cpuflags.o
CC arch/x86/boot/cpucheck.o
CC arch/x86/boot/early_serial_console.o
CC arch/x86/boot/edd.o
CC arch/x86/boot/main.o
CC arch/x86/boot/memory.o
CC arch/x86/boot/pm.o
AS arch/x86/boot/pmjump.o
CC arch/x86/boot/printf.o
CC arch/x86/boot/regs.o
CC arch/x86/boot/string.o
CC arch/x86/boot/tty.o
CC arch/x86/boot/video.o
CC arch/x86/boot/video-mode.o
CC arch/x86/boot/version.o
CC arch/x86/boot/video-vga.o
CC arch/x86/boot/video-vesa.o
CC arch/x86/boot/video-bios.o
HOSTCC arch/x86/boot/tools/build
CPUSTR arch/x86/boot/cpustr.h
LDS arch/x86/boot/compressed/vmlinux.lds
AS arch/x86/boot/compressed/kernel_info.o
AS arch/x86/boot/compressed/head_32.o
CC arch/x86/boot/cpu.o
VOFFSET arch/x86/boot/compressed/../voffset.h
CC arch/x86/boot/compressed/string.o
CC arch/x86/boot/compressed/cmdline.o
CC arch/x86/boot/compressed/error.o
OBJCOPY arch/x86/boot/compressed/vmlinux.bin
HOSTCC arch/x86/boot/compressed/mkpiggy
CC arch/x86/boot/compressed/cpuflags.o
CC arch/x86/boot/compressed/early_serial_console.o
CC arch/x86/boot/compressed/kaslr.o
CC arch/x86/boot/compressed/acpi.o
CC arch/x86/boot/compressed/efi.o
GZIP arch/x86/boot/compressed/vmlinux.bin.gz
CC arch/x86/boot/compressed/misc.o
MKPIGGY arch/x86/boot/compressed/piggy.S
AS arch/x86/boot/compressed/piggy.o
LD arch/x86/boot/compressed/vmlinux
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#1)
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h
All hooks done
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ CI.checksparse: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (8 preceding siblings ...)
2025-04-04 0:43 ` ✓ CI.Hooks: " Patchwork
@ 2025-04-04 0:44 ` Patchwork
2025-04-04 1:29 ` ✗ Xe.CI.BAT: failure " Patchwork
2025-04-04 10:12 ` ✓ Xe.CI.Full: success " Patchwork
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 0:44 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
State : success
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast bc18da45d48d337b92a7ff9546ba61da32b3b586
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
Okay!
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ Xe.CI.BAT: failure for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (9 preceding siblings ...)
2025-04-04 0:44 ` ✓ CI.checksparse: " Patchwork
@ 2025-04-04 1:29 ` Patchwork
2025-04-04 10:12 ` ✓ Xe.CI.Full: success " Patchwork
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 1:29 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 2717 bytes --]
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
State : failure
== Summary ==
CI Bug Log - changes from xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586_BAT -> xe-pw-141439v6_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-141439v6_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-141439v6_BAT, 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 (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-141439v6_BAT:
### IGT changes ###
#### Possible regressions ####
* igt@xe_intel_bb@render@render-linear-256:
- bat-adlp-vf: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/bat-adlp-vf/igt@xe_intel_bb@render@render-linear-256.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/bat-adlp-vf/igt@xe_intel_bb@render@render-linear-256.html
Known issues
------------
Here are the changes found in xe-pw-141439v6_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@xe_intel_bb@render:
- bat-adlp-vf: [PASS][3] -> [ABORT][4] ([Intel XE#3970])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/bat-adlp-vf/igt@xe_intel_bb@render.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/bat-adlp-vf/igt@xe_intel_bb@render.html
* igt@xe_intel_bb@render@render-xmajor-256:
- bat-adlp-vf: [PASS][5] -> [DMESG-WARN][6] ([Intel XE#3970])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/bat-adlp-vf/igt@xe_intel_bb@render@render-xmajor-256.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/bat-adlp-vf/igt@xe_intel_bb@render@render-xmajor-256.html
[Intel XE#3970]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3970
Build changes
-------------
* Linux: xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586 -> xe-pw-141439v6
IGT_8304: 8304
xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586: bc18da45d48d337b92a7ff9546ba61da32b3b586
xe-pw-141439v6: 141439v6
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/index.html
[-- Attachment #2: Type: text/html, Size: 3433 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ Xe.CI.Full: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
` (10 preceding siblings ...)
2025-04-04 1:29 ` ✗ Xe.CI.BAT: failure " Patchwork
@ 2025-04-04 10:12 ` Patchwork
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2025-04-04 10:12 UTC (permalink / raw)
To: Tomasz Lis; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 66094 bytes --]
== Series Details ==
Series: drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6)
URL : https://patchwork.freedesktop.org/series/141439/
State : success
== Summary ==
CI Bug Log - changes from xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586_FULL -> xe-pw-141439v6_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-141439v6_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-6-4-mc-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][1] ([Intel XE#3767]) +15 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-6-4-mc-ccs.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-0:
- shard-adlp: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +2 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-270:
- shard-dg2-set2: NOTRUN -> [SKIP][3] ([Intel XE#316]) +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2327])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-adlp: [PASS][5] -> [DMESG-FAIL][6] ([Intel XE#4543])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-6/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-90:
- shard-adlp: NOTRUN -> [SKIP][7] ([Intel XE#316])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_big_fb@y-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#1124]) +2 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#1124])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-1/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
- shard-dg2-set2: [PASS][10] -> [SKIP][11] ([Intel XE#2191])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-466/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p:
- shard-adlp: NOTRUN -> [SKIP][12] ([Intel XE#2191])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html
* igt@kms_bw@connected-linear-tiling-4-displays-1920x1080p:
- shard-dg2-set2: NOTRUN -> [SKIP][13] ([Intel XE#2191])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_bw@connected-linear-tiling-4-displays-1920x1080p.html
* igt@kms_bw@linear-tiling-2-displays-2160x1440p:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#367])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-1/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-2-displays-2560x1440p:
- shard-adlp: NOTRUN -> [SKIP][15] ([Intel XE#367])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_bw@linear-tiling-2-displays-2560x1440p.html
* igt@kms_bw@linear-tiling-4-displays-3840x2160p:
- shard-dg2-set2: NOTRUN -> [SKIP][16] ([Intel XE#367])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_bw@linear-tiling-4-displays-3840x2160p.html
* igt@kms_ccs@bad-aux-stride-y-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#2887]) +2 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_ccs@bad-aux-stride-y-tiled-ccs.html
* igt@kms_ccs@bad-pixel-format-yf-tiled-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#455] / [Intel XE#787]) +29 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-b-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#787]) +123 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-b-dp-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-adlp: NOTRUN -> [SKIP][20] ([Intel XE#3442])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#3432])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
* igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][22] ([Intel XE#455] / [Intel XE#787]) +5 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [PASS][23] -> [INCOMPLETE][24] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4:
- shard-dg2-set2: [PASS][25] -> [INCOMPLETE][26] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4.html
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][27] ([Intel XE#787]) +8 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html
* igt@kms_chamelium_audio@dp-audio:
- shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#373]) +3 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_chamelium_audio@dp-audio.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- shard-adlp: NOTRUN -> [SKIP][29] ([Intel XE#373])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_chamelium_edid@hdmi-edid-read.html
* igt@kms_chamelium_edid@vga-edid-read:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#2252])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_chamelium_edid@vga-edid-read.html
* igt@kms_color@ctm-signed:
- shard-adlp: [PASS][31] -> [DMESG-WARN][32] ([Intel XE#4173]) +9 other tests dmesg-warn
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-4/igt@kms_color@ctm-signed.html
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-6/igt@kms_color@ctm-signed.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-adlp: NOTRUN -> [SKIP][33] ([Intel XE#307])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@lic-type-0@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][34] ([Intel XE#1178]) +1 other test fail
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-7/igt@kms_content_protection@lic-type-0@pipe-a-dp-2.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-bmg: [PASS][35] -> [SKIP][36] ([Intel XE#2291])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-1/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-dg2-set2: [PASS][37] -> [SKIP][38] ([Intel XE#309]) +4 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-adlp: NOTRUN -> [SKIP][39] ([Intel XE#309])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-dg2-set2: NOTRUN -> [SKIP][40] ([Intel XE#323])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-adlp: NOTRUN -> [SKIP][41] ([Intel XE#4354])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@kms_dp_link_training@non-uhbr-sst.html
- shard-dg2-set2: NOTRUN -> [SKIP][42] ([Intel XE#4354])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#4422])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-1/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html
* igt@kms_flip@2x-absolute-wf_vblank-interruptible:
- shard-dg2-set2: [PASS][44] -> [SKIP][45] ([Intel XE#310])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-blocking-wf_vblank:
- shard-adlp: NOTRUN -> [SKIP][46] ([Intel XE#310]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@kms_flip@2x-blocking-wf_vblank.html
- shard-dg2-set2: NOTRUN -> [SKIP][47] ([Intel XE#310])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_flip@2x-blocking-wf_vblank.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3:
- shard-bmg: [PASS][48] -> [FAIL][49] ([Intel XE#3321]) +1 other test fail
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-5/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3.html
* igt@kms_flip@2x-plain-flip-ts-check-interruptible:
- shard-bmg: [PASS][50] -> [SKIP][51] ([Intel XE#2316]) +3 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-1/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp4:
- shard-dg2-set2: NOTRUN -> [FAIL][52] ([Intel XE#301])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-dp4.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-adlp: [PASS][53] -> [DMESG-WARN][54] ([Intel XE#2953] / [Intel XE#4173]) +1 other test dmesg-warn
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-2/igt@kms_flip@flip-vs-suspend-interruptible.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-1/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
- shard-adlp: NOTRUN -> [SKIP][55] ([Intel XE#455]) +2 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#2293] / [Intel XE#2380])
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#2293])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff:
- shard-adlp: NOTRUN -> [SKIP][58] ([Intel XE#651]) +1 other test skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrs-1p-rte:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#2311]) +2 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-1p-rte.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move:
- shard-dg2-set2: NOTRUN -> [SKIP][60] ([Intel XE#656]) +3 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move:
- shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#4141]) +2 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt:
- shard-dg2-set2: [PASS][62] -> [SKIP][63] ([Intel XE#656]) +5 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:
- shard-adlp: NOTRUN -> [SKIP][64] ([Intel XE#656])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-pgflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][65] ([Intel XE#651]) +8 other tests skip
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][66] ([Intel XE#653]) +4 other tests skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][67] ([Intel XE#653]) +12 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#2313]) +4 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-dg2-set2: NOTRUN -> [SKIP][69] ([Intel XE#658])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_hdr@invalid-hdr:
- shard-dg2-set2: NOTRUN -> [SKIP][70] ([Intel XE#455]) +4 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_hdr@invalid-hdr.html
* igt@kms_hdr@static-swap:
- shard-bmg: [PASS][71] -> [SKIP][72] ([Intel XE#1503])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-3/igt@kms_hdr@static-swap.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_hdr@static-swap.html
* igt@kms_plane@pixel-format-source-clamping:
- shard-adlp: NOTRUN -> [INCOMPLETE][73] ([Intel XE#1035])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_plane@pixel-format-source-clamping.html
* igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-0:
- shard-adlp: NOTRUN -> [WARN][74] ([Intel XE#2078]) +1 other test warn
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-0.html
* igt@kms_plane_cursor@overlay@pipe-b-hdmi-a-3-size-64:
- shard-bmg: NOTRUN -> [INCOMPLETE][75] ([Intel XE#3966]) +1 other test incomplete
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-5/igt@kms_plane_cursor@overlay@pipe-b-hdmi-a-3-size-64.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation:
- shard-adlp: NOTRUN -> [SKIP][76] ([Intel XE#2763] / [Intel XE#455]) +1 other test skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation.html
- shard-bmg: NOTRUN -> [SKIP][77] ([Intel XE#2763]) +4 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-a:
- shard-adlp: NOTRUN -> [SKIP][78] ([Intel XE#2763]) +2 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-a.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25:
- shard-dg2-set2: NOTRUN -> [SKIP][79] ([Intel XE#2763] / [Intel XE#455]) +5 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b:
- shard-dg2-set2: NOTRUN -> [SKIP][80] ([Intel XE#2763]) +8 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b.html
* igt@kms_pm_dc@dc9-dpms:
- shard-adlp: NOTRUN -> [SKIP][81] ([Intel XE#734])
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-dg2-set2: [PASS][82] -> [SKIP][83] ([Intel XE#836])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
- shard-adlp: NOTRUN -> [SKIP][84] ([Intel XE#1489])
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
- shard-dg2-set2: NOTRUN -> [SKIP][85] ([Intel XE#1489]) +1 other test skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#1489])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-1/igt@kms_psr2_sf@psr2-plane-move-sf-dmg-area.html
* igt@kms_psr@fbc-psr-primary-blt:
- shard-adlp: NOTRUN -> [SKIP][87] ([Intel XE#2850] / [Intel XE#929])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_psr@fbc-psr-primary-blt.html
* igt@kms_psr@pr-dpms:
- shard-dg2-set2: NOTRUN -> [SKIP][88] ([Intel XE#2850] / [Intel XE#929]) +8 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_psr@pr-dpms.html
* igt@kms_psr@psr2-sprite-blt:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#2234] / [Intel XE#2850]) +4 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_psr@psr2-sprite-blt.html
* igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
- shard-adlp: NOTRUN -> [FAIL][90] ([Intel XE#1874])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-bmg: [PASS][91] -> [SKIP][92] ([Intel XE#1435])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-3/igt@kms_setmode@clone-exclusive-crtc.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_setmode@clone-exclusive-crtc.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-b-edp-1:
- shard-lnl: [PASS][93] -> [FAIL][94] ([Intel XE#771])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-6/igt@kms_universal_plane@cursor-fb-leak@pipe-b-edp-1.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-6/igt@kms_universal_plane@cursor-fb-leak@pipe-b-edp-1.html
* igt@xe_copy_basic@mem-set-linear-0x3fff:
- shard-dg2-set2: NOTRUN -> [SKIP][95] ([Intel XE#1126])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0x3fff.html
* igt@xe_create@multigpu-create-massive-size:
- shard-adlp: NOTRUN -> [SKIP][96] ([Intel XE#944])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@xe_create@multigpu-create-massive-size.html
* igt@xe_eudebug_online@breakpoint-not-in-debug-mode:
- shard-adlp: NOTRUN -> [SKIP][97] ([Intel XE#2905]) +2 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@xe_eudebug_online@breakpoint-not-in-debug-mode.html
* igt@xe_eudebug_online@interrupt-all:
- shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#2905]) +1 other test skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-5/igt@xe_eudebug_online@interrupt-all.html
* igt@xe_eudebug_online@writes-caching-vram-bb-sram-target-sram:
- shard-dg2-set2: NOTRUN -> [SKIP][99] ([Intel XE#2905]) +6 other tests skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@xe_eudebug_online@writes-caching-vram-bb-sram-target-sram.html
* igt@xe_eudebug_sriov@deny-eudebug:
- shard-dg2-set2: NOTRUN -> [SKIP][100] ([Intel XE#4518])
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@xe_eudebug_sriov@deny-eudebug.html
- shard-bmg: NOTRUN -> [SKIP][101] ([Intel XE#4518])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@xe_eudebug_sriov@deny-eudebug.html
* igt@xe_evict@evict-beng-large-external:
- shard-adlp: NOTRUN -> [SKIP][102] ([Intel XE#261] / [Intel XE#688])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@xe_evict@evict-beng-large-external.html
* igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race:
- shard-dg2-set2: [PASS][103] -> [SKIP][104] ([Intel XE#1392]) +5 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html
* igt@xe_exec_basic@multigpu-once-basic-defer-bind:
- shard-adlp: NOTRUN -> [SKIP][105] ([Intel XE#1392])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@xe_exec_basic@multigpu-once-basic-defer-bind.html
* igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][106] ([Intel XE#2322]) +1 other test skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-1/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_fault_mode@many-execqueues-userptr-imm:
- shard-dg2-set2: NOTRUN -> [SKIP][107] ([Intel XE#288]) +6 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@xe_exec_fault_mode@many-execqueues-userptr-imm.html
* igt@xe_exec_fault_mode@twice-userptr-rebind:
- shard-adlp: NOTRUN -> [SKIP][108] ([Intel XE#288]) +2 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@xe_exec_fault_mode@twice-userptr-rebind.html
* igt@xe_huc_copy@huc_copy:
- shard-dg2-set2: NOTRUN -> [SKIP][109] ([Intel XE#255])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@xe_huc_copy@huc_copy.html
* igt@xe_mmap@pci-membarrier-parallel:
- shard-adlp: NOTRUN -> [SKIP][110] ([Intel XE#4045])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@xe_mmap@pci-membarrier-parallel.html
* igt@xe_oa@buffer-fill:
- shard-dg2-set2: NOTRUN -> [SKIP][111] ([Intel XE#2541] / [Intel XE#3573]) +3 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@xe_oa@buffer-fill.html
* igt@xe_oa@oa-unit-exclusive-stream-exec-q:
- shard-adlp: NOTRUN -> [SKIP][112] ([Intel XE#2541] / [Intel XE#3573]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@xe_oa@oa-unit-exclusive-stream-exec-q.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-adlp: NOTRUN -> [SKIP][113] ([Intel XE#2284] / [Intel XE#366])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_pmu@fn-engine-activity-sched-if-idle:
- shard-dg2-set2: NOTRUN -> [SKIP][114] ([Intel XE#4650])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@xe_pmu@fn-engine-activity-sched-if-idle.html
* igt@xe_query@multigpu-query-oa-units:
- shard-dg2-set2: NOTRUN -> [SKIP][115] ([Intel XE#944])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@xe_query@multigpu-query-oa-units.html
* igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs:
- shard-bmg: NOTRUN -> [SKIP][116] ([Intel XE#4130])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs.html
- shard-dg2-set2: NOTRUN -> [SKIP][117] ([Intel XE#4130])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs.html
#### Possible fixes ####
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-adlp: [FAIL][118] ([Intel XE#3908]) -> [PASS][119] +1 other test pass
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-2/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-1/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
- shard-dg2-set2: [SKIP][120] ([Intel XE#2191]) -> [PASS][121]
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [INCOMPLETE][122] ([Intel XE#3862]) -> [PASS][123]
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [INCOMPLETE][124] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345]) -> [PASS][125]
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4:
- shard-dg2-set2: [INCOMPLETE][126] ([Intel XE#2705] / [Intel XE#4212]) -> [PASS][127]
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-dp-4.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-dg2-set2: [SKIP][128] ([Intel XE#309]) -> [PASS][129]
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
- shard-bmg: [SKIP][130] ([Intel XE#2291]) -> [PASS][131] +2 other tests pass
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
* igt@kms_flip@2x-dpms-vs-vblank-race:
- shard-dg2-set2: [SKIP][132] ([Intel XE#310]) -> [PASS][133] +10 other tests pass
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_flip@2x-dpms-vs-vblank-race.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_flip@2x-dpms-vs-vblank-race.html
* igt@kms_flip@2x-flip-vs-expired-vblank@ac-dp2-hdmi-a3:
- shard-bmg: [FAIL][134] ([Intel XE#3321]) -> [PASS][135] +4 other tests pass
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-3/igt@kms_flip@2x-flip-vs-expired-vblank@ac-dp2-hdmi-a3.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_flip@2x-flip-vs-expired-vblank@ac-dp2-hdmi-a3.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-bmg: [SKIP][136] ([Intel XE#2316]) -> [PASS][137]
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-4/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-7/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1:
- shard-lnl: [FAIL][138] ([Intel XE#886]) -> [PASS][139]
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-6/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-6/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html
* igt@kms_flip@flip-vs-expired-vblank@a-dp4:
- shard-dg2-set2: [FAIL][140] ([Intel XE#301] / [Intel XE#3321]) -> [PASS][141]
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_flip@flip-vs-expired-vblank@a-dp4.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6:
- shard-dg2-set2: [FAIL][142] ([Intel XE#301]) -> [PASS][143] +5 other tests pass
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-433/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6.html
* igt@kms_flip@flip-vs-suspend:
- shard-bmg: [INCOMPLETE][144] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][145] +1 other test pass
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-3/igt@kms_flip@flip-vs-suspend.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-3/igt@kms_flip@flip-vs-suspend.html
- shard-dg2-set2: [INCOMPLETE][146] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][147]
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-433/igt@kms_flip@flip-vs-suspend.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_flip@flip-vs-suspend.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt:
- shard-dg2-set2: [SKIP][148] ([Intel XE#656]) -> [PASS][149] +7 other tests pass
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-433/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_plane_cursor@overlay:
- shard-dg2-set2: [INCOMPLETE][150] ([Intel XE#3966]) -> [PASS][151]
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@kms_plane_cursor@overlay.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@kms_plane_cursor@overlay.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-dg2-set2: [SKIP][152] ([Intel XE#4596]) -> [PASS][153] +1 other test pass
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_plane_multiple@2x-tiling-4.html
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-433/igt@kms_plane_multiple@2x-tiling-4.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-dg2-set2: [SKIP][154] ([Intel XE#836]) -> [PASS][155]
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-dg2-set2: [SKIP][156] ([Intel XE#455]) -> [PASS][157] +1 other test pass
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_setmode@clone-exclusive-crtc.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_setmode@clone-exclusive-crtc.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-dg2-set2: [ABORT][158] ([Intel XE#4540]) -> [PASS][159]
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-463/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@kms_vblank@query-busy@pipe-d-hdmi-a-3:
- shard-bmg: [INCOMPLETE][160] ([Intel XE#4488]) -> [PASS][161] +1 other test pass
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-7/igt@kms_vblank@query-busy@pipe-d-hdmi-a-3.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-5/igt@kms_vblank@query-busy@pipe-d-hdmi-a-3.html
* igt@xe_compute_preempt@compute-preempt-many:
- shard-bmg: [FAIL][162] ([Intel XE#4278]) -> [PASS][163] +1 other test pass
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-1/igt@xe_compute_preempt@compute-preempt-many.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-7/igt@xe_compute_preempt@compute-preempt-many.html
* igt@xe_exec_basic@many-userptr-rebind:
- shard-adlp: [INCOMPLETE][164] -> [PASS][165]
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-2/igt@xe_exec_basic@many-userptr-rebind.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-9/igt@xe_exec_basic@many-userptr-rebind.html
* igt@xe_exec_basic@multigpu-once-null:
- shard-dg2-set2: [SKIP][166] ([Intel XE#1392]) -> [PASS][167] +6 other tests pass
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@xe_exec_basic@multigpu-once-null.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-466/igt@xe_exec_basic@multigpu-once-null.html
* igt@xe_module_load@load:
- shard-lnl: ([PASS][168], [PASS][169], [PASS][170], [PASS][171], [PASS][172], [PASS][173], [PASS][174], [SKIP][175], [PASS][176], [PASS][177], [PASS][178], [PASS][179], [PASS][180], [PASS][181], [PASS][182], [PASS][183], [PASS][184], [PASS][185], [PASS][186], [PASS][187], [PASS][188], [PASS][189], [PASS][190], [PASS][191], [PASS][192], [PASS][193]) ([Intel XE#378]) -> ([PASS][194], [PASS][195], [PASS][196], [PASS][197], [PASS][198], [PASS][199], [PASS][200], [PASS][201], [PASS][202], [PASS][203], [PASS][204], [PASS][205], [PASS][206], [PASS][207], [PASS][208], [PASS][209], [PASS][210], [PASS][211], [PASS][212], [PASS][213], [PASS][214], [PASS][215], [PASS][216], [PASS][217], [PASS][218])
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-8/igt@xe_module_load@load.html
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-8/igt@xe_module_load@load.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-2/igt@xe_module_load@load.html
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-2/igt@xe_module_load@load.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-7/igt@xe_module_load@load.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-5/igt@xe_module_load@load.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-5/igt@xe_module_load@load.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-5/igt@xe_module_load@load.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-4/igt@xe_module_load@load.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-4/igt@xe_module_load@load.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-4/igt@xe_module_load@load.html
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-8/igt@xe_module_load@load.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-6/igt@xe_module_load@load.html
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-6/igt@xe_module_load@load.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-8/igt@xe_module_load@load.html
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-6/igt@xe_module_load@load.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-7/igt@xe_module_load@load.html
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-7/igt@xe_module_load@load.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-3/igt@xe_module_load@load.html
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-3/igt@xe_module_load@load.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-1/igt@xe_module_load@load.html
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-1/igt@xe_module_load@load.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-2/igt@xe_module_load@load.html
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-5/igt@xe_module_load@load.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-1/igt@xe_module_load@load.html
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-3/igt@xe_module_load@load.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-8/igt@xe_module_load@load.html
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-7/igt@xe_module_load@load.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-7/igt@xe_module_load@load.html
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-8/igt@xe_module_load@load.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-8/igt@xe_module_load@load.html
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-4/igt@xe_module_load@load.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-6/igt@xe_module_load@load.html
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-4/igt@xe_module_load@load.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-6/igt@xe_module_load@load.html
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-6/igt@xe_module_load@load.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-4/igt@xe_module_load@load.html
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-4/igt@xe_module_load@load.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-7/igt@xe_module_load@load.html
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-1/igt@xe_module_load@load.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-1/igt@xe_module_load@load.html
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-3/igt@xe_module_load@load.html
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-3/igt@xe_module_load@load.html
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-3/igt@xe_module_load@load.html
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-2/igt@xe_module_load@load.html
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-2/igt@xe_module_load@load.html
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-2/igt@xe_module_load@load.html
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-5/igt@xe_module_load@load.html
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-5/igt@xe_module_load@load.html
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-5/igt@xe_module_load@load.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-1/igt@xe_module_load@load.html
* igt@xe_pm@s4-vm-bind-prefetch:
- shard-adlp: [ABORT][219] ([Intel XE#1794]) -> [PASS][220]
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-9/igt@xe_pm@s4-vm-bind-prefetch.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@xe_pm@s4-vm-bind-prefetch.html
#### Warnings ####
* igt@kms_async_flips@crc-atomic:
- shard-adlp: [DMESG-FAIL][221] ([Intel XE#4543]) -> [DMESG-FAIL][222] ([Intel XE#4543] / [Intel XE#4626])
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-1/igt@kms_async_flips@crc-atomic.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_async_flips@crc-atomic.html
* igt@kms_async_flips@crc-atomic@pipe-c-hdmi-a-1:
- shard-adlp: [FAIL][223] ([Intel XE#3884]) -> [DMESG-FAIL][224] ([Intel XE#4626])
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-adlp-1/igt@kms_async_flips@crc-atomic@pipe-c-hdmi-a-1.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-adlp-4/igt@kms_async_flips@crc-atomic@pipe-c-hdmi-a-1.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][225] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][226] ([Intel XE#787]) +5 other tests skip
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-433/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6.html
* igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][227] ([Intel XE#787]) -> [SKIP][228] ([Intel XE#455] / [Intel XE#787]) +5 other tests skip
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-466/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-6.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-6.html
* igt@kms_content_protection@atomic:
- shard-bmg: [FAIL][229] ([Intel XE#1178]) -> [SKIP][230] ([Intel XE#2341])
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-1/igt@kms_content_protection@atomic.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@lic-type-0:
- shard-bmg: [SKIP][231] ([Intel XE#2341]) -> [FAIL][232] ([Intel XE#1178]) +1 other test fail
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-4/igt@kms_content_protection@lic-type-0.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-7/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@srm:
- shard-dg2-set2: [FAIL][233] ([Intel XE#1178]) -> [SKIP][234] ([Intel XE#455])
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-466/igt@kms_content_protection@srm.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_content_protection@srm.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-dg2-set2: [FAIL][235] ([Intel XE#301]) -> [SKIP][236] ([Intel XE#310]) +1 other test skip
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-466/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-blocking-wf-vblank:
- shard-lnl: [FAIL][237] ([Intel XE#3098] / [Intel XE#886]) -> [FAIL][238] ([Intel XE#886])
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-6/igt@kms_flip@flip-vs-blocking-wf-vblank.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-6/igt@kms_flip@flip-vs-blocking-wf-vblank.html
* igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1:
- shard-lnl: [FAIL][239] ([Intel XE#3098]) -> [FAIL][240] ([Intel XE#886])
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-lnl-6/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-lnl-6/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][241] ([Intel XE#2312]) -> [SKIP][242] ([Intel XE#2311]) +7 other tests skip
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt:
- shard-bmg: [SKIP][243] ([Intel XE#2312]) -> [SKIP][244] ([Intel XE#4141]) +3 other tests skip
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt.html
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt:
- shard-bmg: [SKIP][245] ([Intel XE#4141]) -> [SKIP][246] ([Intel XE#2312]) +1 other test skip
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][247] ([Intel XE#2311]) -> [SKIP][248] ([Intel XE#2312]) +8 other tests skip
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render.html
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt:
- shard-dg2-set2: [SKIP][249] ([Intel XE#651]) -> [SKIP][250] ([Intel XE#656]) +7 other tests skip
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt.html
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][251] ([Intel XE#656]) -> [SKIP][252] ([Intel XE#651]) +12 other tests skip
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt:
- shard-dg2-set2: [SKIP][253] ([Intel XE#656]) -> [SKIP][254] ([Intel XE#653]) +14 other tests skip
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt.html
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt:
- shard-bmg: [SKIP][255] ([Intel XE#2313]) -> [SKIP][256] ([Intel XE#2312]) +7 other tests skip
[255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt.html
[256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render:
- shard-bmg: [SKIP][257] ([Intel XE#2312]) -> [SKIP][258] ([Intel XE#2313]) +5 other tests skip
[257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render.html
[258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][259] ([Intel XE#653]) -> [SKIP][260] ([Intel XE#656]) +11 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html
[260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-dg2-set2: [SKIP][261] ([Intel XE#1500]) -> [SKIP][262] ([Intel XE#362])
[261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586/shard-dg2-433/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/shard-dg2-464/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1035
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
[Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2078
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2905
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3767]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3767
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
[Intel XE#3884]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3884
[Intel XE#3908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3908
[Intel XE#3966]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3966
[Intel XE#4045]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4045
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4278
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4488]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4488
[Intel XE#4518]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4518
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[Intel XE#4540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4540
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4624]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4624
[Intel XE#4626]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4626
[Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#734]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/734
[Intel XE#771]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/771
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586 -> xe-pw-141439v6
IGT_8304: 8304
xe-2904-bc18da45d48d337b92a7ff9546ba61da32b3b586: bc18da45d48d337b92a7ff9546ba61da32b3b586
xe-pw-141439v6: 141439v6
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141439v6/index.html
[-- Attachment #2: Type: text/html, Size: 77922 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion
2025-04-03 18:40 ` [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion Tomasz Lis
@ 2025-04-08 11:59 ` Michal Wajdeczko
2025-04-09 20:58 ` Lis, Tomasz
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2025-04-08 11:59 UTC (permalink / raw)
To: Tomasz Lis, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 03.04.2025 20:40, Tomasz Lis wrote:
> The balloon nodes, which are used to fill areas of GGTT inaccessible
> for a specific VF, were allocated and inserted into GGTT within one
> function. To be able to re-use that insertion code during VF
> migration recovery, we need to split it.
>
> This patch separates allocation (init/fini functs) from the insertion
> of balloons (balloon/deballoon functs). Locks are also moved to ensure
> calls from post-migration recovery worker will not cause a deadlock.
>
> v2: Moved declarations to proper header
> v3: Rephrased description, introduced "_locked" versions of some
> functs, more lockdep checks, some functions renamed, altered error
> handling, added missing kerneldocs.
>
> Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
> ---
> drivers/gpu/drm/xe/xe_ggtt.c | 11 +--
> drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 102 +++++++++++++++++++++-------
> drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 2 +
> 3 files changed, 82 insertions(+), 33 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 5fcb2b4c2c13..769a8dc9be6e 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -447,14 +447,13 @@ int xe_ggtt_node_insert_balloon(struct xe_ggtt_node *node, u64 start, u64 end)
> xe_tile_assert(ggtt->tile, IS_ALIGNED(start, XE_PAGE_SIZE));
> xe_tile_assert(ggtt->tile, IS_ALIGNED(end, XE_PAGE_SIZE));
> xe_tile_assert(ggtt->tile, !drm_mm_node_allocated(&node->base));
> + lockdep_assert_held(&ggtt->lock);
since lock is now prerequisite, this function shall be renamed to:
xe_ggtt_node_insert_balloon_locked()
likely with update to kerneldoc like:
"To be used in cases where ggtt->lock is already taken.
>
> node->base.color = 0;
> node->base.start = start;
> node->base.size = end - start;
>
> - mutex_lock(&ggtt->lock);
> err = drm_mm_reserve_node(&ggtt->mm, &node->base);
> - mutex_unlock(&ggtt->lock);
>
> if (xe_gt_WARN(ggtt->tile->primary_gt, err,
> "Failed to balloon GGTT %#llx-%#llx (%pe)\n",
> @@ -477,16 +476,12 @@ void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node)
same as in earlier comment, rename function to:
xe_ggtt_node_remove_balloon_locked()
> return;
>
> if (!drm_mm_node_allocated(&node->base))
> - goto free_node;
> + return;
>
> + lockdep_assert_held(&node->ggtt->lock);
this should be earlier in the function, as by API SLA lock must be
always taken, not only when node is allocated
> xe_ggtt_dump_node(node->ggtt, &node->base, "remove-balloon");
>
> - mutex_lock(&node->ggtt->lock);
> drm_mm_remove_node(&node->base);
> - mutex_unlock(&node->ggtt->lock);
> -
> -free_node:
> - xe_ggtt_node_fini(node);
> }
>
> /**
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> index a439261bf4d7..c3ca33725161 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> @@ -560,35 +560,38 @@ u64 xe_gt_sriov_vf_lmem(struct xe_gt *gt)
> return gt->sriov.vf.self_config.lmem_size;
> }
>
> -static struct xe_ggtt_node *
> -vf_balloon_ggtt_node(struct xe_ggtt *ggtt, u64 start, u64 end)
> +static int vf_init_ggtt_balloons(struct xe_gt *gt)
> {
> - struct xe_ggtt_node *node;
> - int err;
> + struct xe_tile *tile = gt_to_tile(gt);
> + struct xe_ggtt *ggtt = tile->mem.ggtt;
>
> - node = xe_ggtt_node_init(ggtt);
> - if (IS_ERR(node))
> - return node;
> + tile->sriov.vf.ggtt_balloon[0] = xe_ggtt_node_init(ggtt);
> + if (IS_ERR(tile->sriov.vf.ggtt_balloon[0]))
> + return PTR_ERR(tile->sriov.vf.ggtt_balloon[0]);
>
> - err = xe_ggtt_node_insert_balloon(node, start, end);
> - if (err) {
> - xe_ggtt_node_fini(node);
> - return ERR_PTR(err);
> - }
> + tile->sriov.vf.ggtt_balloon[1] = xe_ggtt_node_init(ggtt);
> + if (IS_ERR(tile->sriov.vf.ggtt_balloon[1]))
> + return PTR_ERR(tile->sriov.vf.ggtt_balloon[1]);
what about ggtt_balloon[0] ? no need to fini() it ?
>
> - return node;
> + return 0;
> }
>
> -static int vf_balloon_ggtt(struct xe_gt *gt)
> +/**
> + * xe_gt_sriov_vf_balloon_ggtt_locked - Insert balloon nodes to limit used GGTT address range.
> + * @gt: the &xe_gt struct instance
> + * Return: 0 on success or a negative error code on failure.
> + */
> +int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt)
> {
> struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
> struct xe_tile *tile = gt_to_tile(gt);
> - struct xe_ggtt *ggtt = tile->mem.ggtt;
> struct xe_device *xe = gt_to_xe(gt);
> u64 start, end;
> + int err;
>
> xe_gt_assert(gt, IS_SRIOV_VF(xe));
> xe_gt_assert(gt, !xe_gt_is_media_type(gt));
> + lockdep_assert_held(&tile->mem.ggtt->lock);
>
> if (!config->ggtt_size)
> return -ENODATA;
> @@ -611,33 +614,76 @@ static int vf_balloon_ggtt(struct xe_gt *gt)
> start = xe_wopcm_size(xe);
> end = config->ggtt_base;
> if (end != start) {
> - tile->sriov.vf.ggtt_balloon[0] = vf_balloon_ggtt_node(ggtt, start, end);
> - if (IS_ERR(tile->sriov.vf.ggtt_balloon[0]))
> - return PTR_ERR(tile->sriov.vf.ggtt_balloon[0]);
> + err = xe_ggtt_node_insert_balloon(tile->sriov.vf.ggtt_balloon[0], start, end);
> + if (err)
> + return err;
> }
>
> start = config->ggtt_base + config->ggtt_size;
> end = GUC_GGTT_TOP;
> if (end != start) {
> - tile->sriov.vf.ggtt_balloon[1] = vf_balloon_ggtt_node(ggtt, start, end);
> - if (IS_ERR(tile->sriov.vf.ggtt_balloon[1])) {
> + err = xe_ggtt_node_insert_balloon(tile->sriov.vf.ggtt_balloon[1], start, end);
> + if (err) {
> xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[0]);
> - return PTR_ERR(tile->sriov.vf.ggtt_balloon[1]);
> + return err;
> }
> }
>
> return 0;
> }
>
> -static void deballoon_ggtt(struct drm_device *drm, void *arg)
> +static int vf_balloon_ggtt(struct xe_gt *gt)
> {
> - struct xe_tile *tile = arg;
> + struct xe_ggtt *ggtt = gt_to_tile(gt)->mem.ggtt;
> + int err;
> +
> + mutex_lock(&ggtt->lock);
> + err = xe_gt_sriov_vf_balloon_ggtt_locked(gt);
> + mutex_unlock(&ggtt->lock);
> +
> + return err;
> +}
> +
> +/**
> + * xe_gt_sriov_vf_deballoon_ggtt_locked - Remove balloon nodes which limited used address renge.
> + * @gt: the &xe_gt struct instance
> + */
> +void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt)
> +{
> + struct xe_tile *tile = gt_to_tile(gt);
>
> xe_tile_assert(tile, IS_SRIOV_VF(tile_to_xe(tile)));
> + lockdep_assert_held(&tile->mem.ggtt->lock);
nit: IMO this is redundant as lock shall be asserted in
xe_ggtt_node_remove_balloon_locked()
> +
> xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[1]);
> xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[0]);
> }
>
> +static void vf_deballoon_ggtt(struct xe_gt *gt)
hmm, in this patch you don't really need to split (de)balloon logic into
locked/unlocked parts, so maybe keep it as it was and introduce such
split when really needed
also it's quite unusual that unlocked part is named in completely
different fashion than locked, can't it be (later) defined as pair of:
xe_gt_sriov_vf_deballoon_ggtt_locked()
xe_gt_sriov_vf_deballoon_ggtt()
and
xe_gt_sriov_vf_balloon_ggtt_locked()
xe_gt_sriov_vf_balloon_ggtt()
> +{
> + struct xe_tile *tile = gt_to_tile(gt);
> +
> + mutex_lock(&tile->mem.ggtt->lock);
> + xe_gt_sriov_vf_deballoon_ggtt_locked(gt);
> + mutex_unlock(&tile->mem.ggtt->lock);
> +}
> +
> +static void vf_balloon_fini(struct xe_gt *gt)
> +{
> + struct xe_tile *tile = gt_to_tile(gt);
missing asserts:
xe_gt_assert(gt, IS_SRIOV_VF(xe));
xe_gt_assert(gt, !xe_gt_is_media_type(gt));
> +
> + xe_ggtt_node_fini(tile->sriov.vf.ggtt_balloon[1]);
> + xe_ggtt_node_fini(tile->sriov.vf.ggtt_balloon[0]);
> +}
> +
> +static void deballoon_and_fini_ggtt(struct drm_device *drm, void *arg)
> +{
> + struct xe_tile *tile = arg;
> +
> + vf_deballoon_ggtt(tile->primary_gt);
> + vf_balloon_fini(tile->primary_gt);
> +}
> +
> /**
> * xe_gt_sriov_vf_prepare_ggtt - Prepare a VF's GGTT configuration.
> * @gt: the &xe_gt
> @@ -655,11 +701,17 @@ int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt)
> if (xe_gt_is_media_type(gt))
> return 0;
>
> - err = vf_balloon_ggtt(gt);
> + err = vf_init_ggtt_balloons(gt);
> if (err)
> return err;
>
> - return drmm_add_action_or_reset(&xe->drm, deballoon_ggtt, tile);
> + err = vf_balloon_ggtt(gt);
> + if (err) {
> + vf_balloon_fini(gt);
> + return err;
> + }
> +
> + return drmm_add_action_or_reset(&xe->drm, deballoon_and_fini_ggtt, tile);
> }
>
> static int relay_action_handshake(struct xe_gt *gt, u32 *major, u32 *minor)
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> index ba6c5d74e326..d717deb8af91 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> @@ -18,6 +18,8 @@ int xe_gt_sriov_vf_query_config(struct xe_gt *gt);
> int xe_gt_sriov_vf_connect(struct xe_gt *gt);
> int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
> int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt);
> +int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt);
> +void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt);
> int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
> void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 2/4] drm/xe/vf: Shifting GGTT area post migration
2025-04-03 18:40 ` [PATCH v7 2/4] drm/xe/vf: Shifting GGTT area post migration Tomasz Lis
@ 2025-04-08 13:23 ` Michal Wajdeczko
2025-04-09 21:03 ` Lis, Tomasz
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2025-04-08 13:23 UTC (permalink / raw)
To: Tomasz Lis, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 03.04.2025 20:40, Tomasz Lis wrote:
> We have only one GGTT for all IOV functions, with each VF having assigned
> a range of addresses for its use. After migration, a VF can receive a
> different range of addresses than it had initially.
>
> This implements shifting GGTT addresses within drm_mm nodes, so that
> VMAs stay valid after migration. This will make the driver use new
> addresses when accessing GGTT from the moment the shifting ends.
>
> By taking the ggtt->lock for the period of VMA fixups, this change
> also adds constraint on that mutex. Any locks used during the recovery
> cannot ever wait for hardware response - because after migration,
> the hardware will not do anything until fixups are finished.
>
> v2: Moved some functs to xe_ggtt.c; moved shift computation to just
> after querying; improved documentation; switched some warns to asserts;
> skipping fixups when GGTT shift eq 0; iterating through tiles (Michal)
> v3: Updated kerneldocs, removed unused funct, properly allocate
> balloning nodes if non existent
> v4: Re-used ballooning functions from VF init, used bool in place of
> standard error codes
> v5: Renamed one function
> v6: Subject tag change, several kerneldocs updated, some functions
> renamed, some moved, added several asserts, shuffled declarations
> of variables, revealed more detail in high level functions
>
> Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
> ---
> drivers/gpu/drm/xe/xe_ggtt.c | 39 ++++++++++
> drivers/gpu/drm/xe/xe_ggtt.h | 1 +
> drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 93 +++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 2 +
> drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 2 +
> drivers/gpu/drm/xe/xe_sriov_vf.c | 22 ++++++
> 6 files changed, 159 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 769a8dc9be6e..ab6717671542 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -484,6 +484,45 @@ void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node)
> drm_mm_remove_node(&node->base);
> }
>
> +/**
> + * xe_ggtt_shift_nodes - Shift GGTT nodes to adjust for a change in usable address range.
> + * @ggtt: the &xe_ggtt struct instance
> + * @shift: change to the location of area provisioned for current VF
> + *
> + * This function moves all nodes from the GGTT VM, to a temp list. These nodes are expected
> + * to represent allocations in range formerly assigned to current VF, before the range changed.
> + * When the GGTT VM is completely clear of any nodes, they are re-added with shifted offsets.
> + *
> + * The function has no ability of failing - because it shifts existing nodes, without
> + * any additional processing. If the nodes were successfully existing at the old address,
> + * they will do the same at the new one. A fail inside this function would indicate that> + * the list of nodes was either already damaged, or that the shift
brings the address ramge
typo
> + * outside of valid bounds. Both cases justify an assert rather than error code.
> + */
> +void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, s64 shift)
xe_ggtt_shift_nodes_locked() ?
> +{
struct xe_tile *tile __maybe_unused = ggtt->tile;
> + struct drm_mm_node *node, *tmpn;
> + LIST_HEAD(temp_list_head);
> + int err;
> +
> + lockdep_assert_held(&ggtt->lock);
> +
what about doing early exit here if shift is 0?
if (!shift)
return;
your asserts below will be simpler
> + drm_mm_for_each_node_safe(node, tmpn, &ggtt->mm) {
btw, shouldn't we have asserts here instead?
> + drm_mm_remove_node(node);
> + list_add(&node->node_list, &temp_list_head);
> + }
> +
> + list_for_each_entry_safe(node, tmpn, &temp_list_head, node_list) {
> + xe_tile_assert(ggtt->tile, shift >= 0 || node->start >= (u64)(-shift));
shouldn't this be:
xe_tile_assert(tile, node->start + shift >= xe_wopcm_size(xe));
xe_tile_assert(tile, node->start + node->size + shift <
ggtt->size - xe_wopcm_size(xe));
or maybe better introduce:
xe_ggtt_assert_fit(ggtt, start, size)
{
xe_tile_assert(tile, start >= wopcm);
xe_tile_assert(tile, start + size < ggtt->size - wopcm);
}
and then:
xe_ggtt_assert_fit(ggtt, node->start + shift, node->size);
> + xe_tile_assert(ggtt->tile, shift <= 0 || node->start + node->size <
> + node->start + node->size + (u64)shift);
> + list_del(&node->node_list);
> + node->start += shift;
> + err = drm_mm_reserve_node(&ggtt->mm, node);
> + xe_tile_assert(ggtt->tile, !err);
> + }
> +}
> +
> /**
> * xe_ggtt_node_insert_locked - Locked version to insert a &xe_ggtt_node into the GGTT
> * @node: the &xe_ggtt_node to be inserted
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.h b/drivers/gpu/drm/xe/xe_ggtt.h
> index 27e7d67de004..eb39023c4e1b 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.h
> +++ b/drivers/gpu/drm/xe/xe_ggtt.h
> @@ -18,6 +18,7 @@ void xe_ggtt_node_fini(struct xe_ggtt_node *node);
> int xe_ggtt_node_insert_balloon(struct xe_ggtt_node *node,
> u64 start, u64 size);
> void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node);
> +void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, s64 shift);
>
> int xe_ggtt_node_insert(struct xe_ggtt_node *node, u32 size, u32 align);
> int xe_ggtt_node_insert_locked(struct xe_ggtt_node *node,
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> index c3ca33725161..50b0c3b7be8c 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
> @@ -415,12 +415,20 @@ static int vf_get_ggtt_info(struct xe_gt *gt)
> xe_gt_sriov_dbg_verbose(gt, "GGTT %#llx-%#llx = %lluK\n",
> start, start + size - 1, size / SZ_1K);
>
> + config->ggtt_shift = start - (s64)config->ggtt_base;
> config->ggtt_base = start;
> config->ggtt_size = size;
>
> return config->ggtt_size ? 0 : -ENODATA;
> }
>
> +s32 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt)
public functions are required to have kernel-doc
> +{
> + struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
> +
> + return config->ggtt_shift;
> +}
> +
> static int vf_get_lmem_info(struct xe_gt *gt)
> {
> struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
> @@ -809,6 +817,91 @@ int xe_gt_sriov_vf_connect(struct xe_gt *gt)
> return err;
> }
>
> +/**
> + * DOC: GGTT nodes shifting during VF post-migration recovery
> + *
> + * The first fixup applied to the VF KMD structures as part of post-migration
> + * recovery is shifting nodes within xe_ggtt instance. The nodes are moved
> + * from range previously assigned to this VF, into newly provisioned area.
> + * The chanes include balloons, which are resized accordingly.
typo
> + *
> + * The balloon nodes are there to eliminate unavailable ranges from use: one
> + * reserves the GGTT area below the range for current VF, and another one
> + * reserves area above.
> + *
> + * Below is a GGTT layout of example VF, with a certain address range assigned to
> + * said VF, and inaccessible areas above and below:
> + *
> + * 0 4GiB
> + * |<--------------------------- Total GGTT size ----------------------------->|
> + * WOPCM GUC_TOP
> + * |<-------------- Area mappable by xe_ggtt instance ---------------->|
> + *
> + * +---+---------------------------------+----------+----------------------+---+
> + * |\\\|/////////////////////////////////| VF mem |//////////////////////|\\\|
> + * +---+---------------------------------+----------+----------------------+---+
> + *
> + * Hardware enforced access rules before migration:
> + *
> + * |<------- inaccessible for VF ------->|<VF owned>|<-- inaccessible for VF ->|
> + *
> + * GGTT nodes used for tracking allocations:
> + *
> + * |<----------- balloon ------------>|<- nodes->|<----- balloon ------>|
> + *
> + * After the migration, GGTT area assigned to the VF might have shifted, either
> + * to lower or to higher address. But we expect the total size and extra areas to
> + * be identical, as migration can only happen between matching platforms.
> + * Below is an example of GGTT layout of the VF after migration. Content of the
> + * GGTT for VF has been moved to a new area, and we receive its address from GuC:
> + *
> + * +---+----------------------+----------+---------------------------------+---+
> + * |\\\|//////////////////////| VF mem |/////////////////////////////////|\\\|
> + * +---+----------------------+----------+---------------------------------+---+
> + *
> + * Hardware enforced access rules after migration:
> + *
> + * |<- inaccessible for VF -->|<VF owned>|<------- inaccessible for VF ------->|
> + *
> + * So the VF has a new slice of GGTT assigned, and during migration process, the
> + * memory content was copied to that new area. But the drm_mm nodes within xe kmd
> + * are still tracking allocations using the old addresses. The nodes within VF
> + * owned area have to be shifted, and balloon nodes need to be resized to
> + * properly mask out areas not owned by the VF.
> + *
> + * Fixed drm_mm nodes used for tracking allocations:
> + *
> + * |<------ balloon ------>|<- nodes->|<----------- balloon ----------->|
> + *
> + * Due to use of GPU profiles, we do not expect the old and new GGTT ares to
> + * overlap; but our node shifting will fix addresses properly regardless.
> + */
> +
> +/**
> + * xe_gt_sriov_vf_fixup_ggtt_nodes - Shift GGTT allocations to match assigned range.
> + * @gt: the &xe_gt struct instance
> + * @ggtt_shift: the shift value
> + *
> + * Since Global GTT is not virtualized, each VF has an assigned range
> + * within the global space. This range might have changed during migration,
> + * which requires all memory addresses pointing to GGTT to be shifted.
> + */
> +void xe_gt_sriov_vf_fixup_ggtt_nodes(struct xe_gt *gt, s64 ggtt_shift)
> +{
> + struct xe_tile *tile = gt_to_tile(gt);
> + struct xe_ggtt *ggtt = tile->mem.ggtt;
> +
> + xe_gt_assert(gt, !xe_gt_is_media_type(gt));
> +
> + mutex_lock(&ggtt->lock);
> + if (ggtt_shift) {
early exit before taking a lock?
> + xe_gt_sriov_vf_deballoon_ggtt_locked(gt);
> + xe_ggtt_shift_nodes(ggtt, ggtt_shift);
> + xe_gt_sriov_vf_balloon_ggtt_locked(gt);
> + }
> + mutex_unlock(&ggtt->lock);
> +}
> +
> /**
> * xe_gt_sriov_vf_migrated_event_handler - Start a VF migration recovery,
> * or just mark that a GuC is ready for it.
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> index d717deb8af91..904a600063e6 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
> @@ -20,6 +20,8 @@ int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
> int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt);
> int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt);
> void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt);
> +s32 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt);
> +void xe_gt_sriov_vf_fixup_ggtt_nodes(struct xe_gt *gt, s64 ggtt_shift);
> int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
> void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
>
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
> index a57f13b5afcd..5ccbdf8d08b6 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
> @@ -40,6 +40,8 @@ struct xe_gt_sriov_vf_selfconfig {
> u64 ggtt_base;
> /** @ggtt_size: assigned size of the GGTT region. */
> u64 ggtt_size;
> + /** @ggtt_shift: difference in ggtt_base on last migration */
> + s64 ggtt_shift;
> /** @lmem_size: assigned size of the LMEM. */
> u64 lmem_size;
> /** @num_ctxs: assigned number of GuC submission context IDs. */
> diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c
> index c1275e64aa9c..e70f1ceabbb3 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_vf.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c
> @@ -7,6 +7,7 @@
>
> #include "xe_assert.h"
> #include "xe_device.h"
> +#include "xe_gt.h"
> #include "xe_gt_sriov_printk.h"
> #include "xe_gt_sriov_vf.h"
> #include "xe_pm.h"
> @@ -170,6 +171,25 @@ static bool vf_post_migration_imminent(struct xe_device *xe)
> work_pending(&xe->sriov.vf.migration.worker);
> }
>
> +static bool vf_post_migration_fixup_ggtt_nodes(struct xe_device *xe)
nit: the "fixup" word in the function name here, which means "shift"
here, slightly conflicts with the "fixup" in the steps we plan to do
later, where we actually will do some "fixup" due to shifted GGTT
so maybe:
s/vf_post_migration_fixup_ggtt_nodes/vf_post_migration_shift_ggtt_nodes
s/xe_gt_sriov_vf_fixup_ggtt_nodes/xe_gt_sriov_vf_shift_ggtt_nodes
but likely you will resist like always ...
> +{
> + bool need_fixups = false;
> + struct xe_tile *tile;
> + unsigned int id;
> +
> + for_each_tile(tile, xe, id) {
> + struct xe_gt *gt = tile->primary_gt;
> + s64 shift;
> +
> + shift = xe_gt_sriov_vf_ggtt_shift(gt);
> + if (shift) {
> + need_fixups = true;
> + xe_gt_sriov_vf_fixup_ggtt_nodes(gt, shift);
> + }
> + }
> + return need_fixups;
> +}
> +
> /*
> * Notify all GuCs about resource fixups apply finished.
> */
> @@ -191,6 +211,7 @@ static void vf_post_migration_notify_resfix_done(struct xe_device *xe)
>
> static void vf_post_migration_recovery(struct xe_device *xe)
> {
> + bool need_fixups;
> int err;
>
> drm_dbg(&xe->drm, "migration recovery in progress\n");
> @@ -201,6 +222,7 @@ static void vf_post_migration_recovery(struct xe_device *xe)
> if (unlikely(err))
> goto fail;
>
> + need_fixups = vf_post_migration_fixup_ggtt_nodes(xe);
> /* FIXME: add the recovery steps */
> vf_post_migration_notify_resfix_done(xe);
> xe_pm_runtime_put(xe);
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 3/4] drm/xe/guc: Introduce enum with offsets for context register H2Gs
2025-04-03 18:40 ` [PATCH v7 3/4] drm/xe/guc: Introduce enum with offsets for context register H2Gs Tomasz Lis
@ 2025-04-08 13:34 ` Michal Wajdeczko
2025-04-09 21:04 ` Lis, Tomasz
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2025-04-08 13:34 UTC (permalink / raw)
To: Tomasz Lis, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 03.04.2025 20:40, Tomasz Lis wrote:
> Some GuC messages are constructed with incrementing dword counter
> rather than referencing specific DWORDs, as described in GuC interface
> specification.
>
> This change introduces the definitions of DWORD numbers for parameters
> which will need to be referenced in a CTB parser to be added in a
> following patch. To ensure correctness of these DWORDs, verification
> in form of asserts was added to the message construction code.
>
> v2: Renamed enum members, added ones for single context registration,
> modified asserts to check values rather than indexes.
>
> Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
> Suggested-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> drivers/gpu/drm/xe/abi/guc_actions_abi.h | 29 ++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_submit.c | 22 ++++++++++++++++++
> 2 files changed, 51 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/abi/guc_actions_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
> index 448afb86e05c..64c71526356e 100644
> --- a/drivers/gpu/drm/xe/abi/guc_actions_abi.h
> +++ b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
> @@ -161,6 +161,35 @@ enum xe_guc_preempt_options {
> XE_GUC_PREEMPT_OPTION_DROP_SUBMIT_Q = 0x8,
> };
>
> +enum xe_guc_register_context_param_offsets {
> + XE_GUC_REGISTER_CONTEXT_DATA_0_MBZ = 0,
> + XE_GUC_REGISTER_CONTEXT_DATA_1_FLAGS,
> + XE_GUC_REGISTER_CONTEXT_DATA_2_CONTEXT_INDEX,
> + XE_GUC_REGISTER_CONTEXT_DATA_3_ENGINE_CLASS,
> + XE_GUC_REGISTER_CONTEXT_DATA_4_ENGINE_SUBMIT_MASK,
> + XE_GUC_REGISTER_CONTEXT_DATA_5_WQ_DESC_ADDR_LOWER,
> + XE_GUC_REGISTER_CONTEXT_DATA_6_WQ_DESC_ADDR_UPPER,
> + XE_GUC_REGISTER_CONTEXT_DATA_7_WQ_BUF_BASE_LOWER,
> + XE_GUC_REGISTER_CONTEXT_DATA_8_WQ_BUF_BASE_UPPER,
> + XE_GUC_REGISTER_CONTEXT_DATA_9_WQ_BUF_SIZE,
> + XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR,
> +};
> +
> +enum xe_guc_register_context_multi_lrc_param_offsets {
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_0_MBZ = 0,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_1_FLAGS,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_2_PARENT_CONTEXT,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_3_ENGINE_CLASS,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_4_ENGINE_SUBMIT_MASK,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_6_WQ_DESC_ADDR_UPPER,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_8_WQ_BUF_BASE_UPPER,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_9_WQ_BUF_SIZE,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR,
> +};
> +
> enum xe_guc_report_status {
> XE_GUC_REPORT_STATUS_UNKNOWN = 0x0,
> XE_GUC_REPORT_STATUS_ACKED = 0x1,
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> index 31bc2022bfc2..63ef06d3a28f 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -485,6 +485,18 @@ static void __register_mlrc_exec_queue(struct xe_guc *guc,
> action[len++] = upper_32_bits(xe_lrc_descriptor(lrc));
> }
>
nit: if we want to keep these asserts then small comment saying
/* explicitly checks some fields that we might fixup later */
will not hurt
> + xe_gt_assert(guc_to_gt(guc),
> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER]
> + == info->wq_desc_lo);
> + xe_gt_assert(guc_to_gt(guc),
> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER]
> + == info->wq_base_lo);
> + xe_gt_assert(guc_to_gt(guc),
> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS]
> + == q->width);
> + xe_gt_assert(guc_to_gt(guc),
> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR]
> + == info->hwlrca_lo);
maybe we can spare one line in each assert by:
xe_gt_assert(guc_to_gt(guc), info->hwlrca_lo ==
action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR]);
or by introducing:
xe_guc_assert(guc, cond)
or by ignoring 100 column limit - it will not be first time in xe ;)
> xe_gt_assert(guc_to_gt(guc), len <= MAX_MLRC_REG_SIZE);
> #undef MAX_MLRC_REG_SIZE
>
> @@ -509,6 +521,16 @@ static void __register_exec_queue(struct xe_guc *guc,
> info->hwlrca_hi,
> };
>
> + xe_gt_assert(guc_to_gt(guc),
> + action[XE_GUC_REGISTER_CONTEXT_DATA_5_WQ_DESC_ADDR_LOWER]
> + == info->wq_desc_lo);
> + xe_gt_assert(guc_to_gt(guc),
> + action[XE_GUC_REGISTER_CONTEXT_DATA_7_WQ_BUF_BASE_LOWER]
> + == info->wq_base_lo);
> + xe_gt_assert(guc_to_gt(guc),
> + action[XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR]
> + == info->hwlrca_lo);
> +
> xe_guc_ct_send(&guc->ct, action, ARRAY_SIZE(action), 0, 0);
> }
>
otherwise, since I don't have better ideas for enum names, LGTM
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration
2025-04-03 18:40 ` [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration Tomasz Lis
@ 2025-04-08 14:23 ` Michal Wajdeczko
2025-04-09 21:09 ` Lis, Tomasz
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2025-04-08 14:23 UTC (permalink / raw)
To: Tomasz Lis, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 03.04.2025 20:40, Tomasz Lis wrote:
> During post-migration recovery of a VF, it is necessary to update
> GGTT references included in messages which are going to be sent
> to GuC. GuC will start consuming messages after VF KMD will inform
> it about fixups being done; before that, the VF KMD is expected
> to update any H2G messages which are already in send buffer but
> were not consumed by GuC.
>
> Only a small subset of messages allowed for VFs have GGTT references
> in them. This patch adds the functionality to parse the CTB send
> ring buffer and shift addresses contained within.
>
> While fixing the CTB content, ct->lock is not taken. This means
> the only barrier taken remains GGTT address lock - which is ok,
> because only requests with GGTT addresses matter, but it also means
> tail changes can happen during the CTB fixups execution (which may
> be ignored as any new messages will not have anything to fix).
>
> The GGTT address locking will be introduced in a future series.
>
> v2: removed storing shift as that's now done in VMA nodes patch;
> macros to inlines; warns to asserts; log messages fixes (Michal)
> v3: removed inline keywords, enums for offsets in CTB messages,
> less error messages, if return unused then made functs void (Michal)
> v4: update the cached head before starting fixups
> v5: removed/updated comments, wrapped lines, converted assert into
> error, enums for offsets to separate patch, reused xe_map_rd
> v6: define xe_map_*_array() macros, support CTB wrap which divides
> a message, updated comments, moved one function to an earlier patch
>
> Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
> ---
> drivers/gpu/drm/xe/xe_guc_ct.c | 147 +++++++++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_ct.h | 2 +
> drivers/gpu/drm/xe/xe_map.h | 12 +++
> drivers/gpu/drm/xe/xe_sriov_vf.c | 18 ++++
> 4 files changed, 179 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
> index 686fe664c20d..add2d9b12345 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ct.c
> +++ b/drivers/gpu/drm/xe/xe_guc_ct.c
> @@ -84,6 +84,8 @@ struct g2h_fence {
> bool done;
> };
>
> +#define make_u64(hi, lo) ((u64)((u64)(u32)(hi) << 32 | (u32)(lo)))
> +
> static void g2h_fence_init(struct g2h_fence *g2h_fence, u32 *response_buffer)
> {
> g2h_fence->response_buffer = response_buffer;
> @@ -1622,6 +1624,151 @@ static void g2h_worker_func(struct work_struct *w)
> receive_g2h(ct);
> }
>
> +static void xe_ring_map_fixup_u64(struct xe_device *xe, struct iosys_map *cmds,
> + u32 size, u32 head, u32 pos, s64 shift)
> +{
> + u32 hi, lo;
> + u64 offset;
> +
> + lo = xe_map_rd_array_u32(xe, cmds, (head + pos) % size);
> + hi = xe_map_rd_array_u32(xe, cmds, (head + pos + 1) % size);
> + offset = make_u64(hi, lo);
> + offset += shift;
> + lo = lower_32_bits(offset);
> + hi = upper_32_bits(offset);
> + xe_map_wr_array_u32(xe, cmds, (head + pos) % size, lo);
> + xe_map_wr_array_u32(xe, cmds, (head + pos + 1) % size, hi);
> +}
> +
> +/*
> + * Shift any GGTT addresses within a single message left within CTB from
> + * before post-migration recovery.
> + * @ct: pointer to CT struct of the target GuC
> + * @cmds: iomap buffer containing CT messages
> + * @head: start of the target message within the buffer
> + * @len: length of the target message
> + * @size: size of the commands buffer
> + * @shift: the address shift to be added to each GGTT reference
> + */
> +static void ct_update_addresses_in_message(struct xe_guc_ct *ct,
s/ct_update_addresses_in_message/ct_fixup_ggtt_in_message
> + struct iosys_map *cmds, u32 head,
> + u32 len, u32 size, s64 shift)
> +{
> + struct xe_device *xe = ct_to_xe(ct);
> + u32 action, i, n;
> + u32 msg[1];
u32 msg;
or
u32 msg[GUC_HXG_MSG_MIN_LEN];
> +
> + xe_map_memcpy_from(xe, msg, cmds, head * sizeof(u32),
> + 1 * sizeof(u32));
please use helpers that you already have:
msg[0] = xe_map_rd_array_u32(xe, cmds, head);
> + action = FIELD_GET(GUC_HXG_REQUEST_MSG_0_ACTION, msg[0]);
> + switch (action) {
> + case XE_GUC_ACTION_REGISTER_CONTEXT:
maybe don't super-optimize by hand and just do those 3x fixups here,
using related XE_GUC_REGISTER_CONTEXT_DATA_xxx definitions?
it looks weird to have 2x "case" statements and then "if (case)" anyway,
plus mixed enums that just accidentally points to the same offsets
> + case XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC:
> + xe_ring_map_fixup_u64(xe, cmds, size, head,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER,
> + shift);
> + xe_ring_map_fixup_u64(xe, cmds, size, head,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER,
> + shift);
> + if (action == XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC) {
> + n = xe_map_rd_array_u32(xe, cmds, head +
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS);
> + for (i = 0; i < n; i++)
> + xe_ring_map_fixup_u64(xe, cmds, size, head,
> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR
> + + 2 * i, shift);
> + } else {
> + xe_ring_map_fixup_u64(xe, cmds, size, head,
> + XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR, shift);
> + }
> + break;
> + default:
> + break;
> + }
> +}
> +
> +static int ct_update_addresses_in_buffer(struct xe_guc_ct *ct,
s/ct_update_addresses_in_buffer/ct_fixup_ggtt_in_buffer
> + struct guc_ctb *h2g,
nit: this is redundant
> + s64 shift, u32 *mhead, s32 avail)
can you describe what is this mhead?
> +{
> + struct xe_device *xe = ct_to_xe(ct);
> + u32 head = *mhead;
> + u32 size = h2g->info.size;
> + u32 msg[1];
u32 msg;
or
u32 msg[GUC_CTB_MSG_MIN_LEN];
> + u32 len;
please try to order vars in rev-xmas-tree
> +
> + /* Read header */
you should at least assert that avail > 0 before reading even single u32
xe_gt_assert(gt, avail >= GUC_CTB_MSG_MIN_LEN);
but since it is called in the loop, more appropriate would be:
if (avail < GUC_CTB_MSG_MIN_LEN)
goto broken;
> + xe_map_memcpy_from(xe, msg, &h2g->cmds, sizeof(u32) * head,
> + sizeof(u32));
msg[0] = xe_map_rd_array_u32(xe, cmds, head);
> + len = FIELD_GET(GUC_CTB_MSG_0_NUM_DWORDS, msg[0]) + GUC_CTB_MSG_MIN_LEN;
> +
> + if (unlikely(len > (u32)avail)) {
> + xe_gt_err(ct_to_gt(ct), "H2G channel broken on read, avail=%d, len=%d, fixups skipped\n",
> + avail, len);
> + return 0;
> + }
> +
> + head = (head + 1) % size;
maybe don't update head here as you need to reverse it two lines below?
and this magic "1" is GUC_CTB_MSG_MIN_LEN
> + ct_update_addresses_in_message(ct, &h2g->cmds, head, len - 1, size, shift);
msg_len_to_hxg_len() instead of "len - 1" ?
> + *mhead = (head + len - 1) % size;
maybe it's time to introduce
u32 move_head(u32 head, u32 step, u32 size)
> +
> + return avail - len;
> +}
> +
> +/**
> + * xe_guc_ct_fixup_messages_with_ggtt - Fixup any pending H2G CTB messages
> + * @ct: pointer to CT struct of the target GuC
> + * @ggtt_shift: shift to be added to all GGTT addresses within the CTB
> + *
> + * Messages in guc-to-host CTB are owned by GuC and any fixups in them
> + * are made by GuC. But content of the host-to-guc CTB is owned by the
> + * KMD, so fixups to GGTT references in any pending messages need to be
> + * applied here.
s/guc-to-host/H2G
like you have earlier and below
> + * This function updates GGTT offsets in payloads of pending H2G CTB
> + * messages (messages which were not consumed by GuC before the VF got
> + * paused).
> + */
> +void xe_guc_ct_fixup_messages_with_ggtt(struct xe_guc_ct *ct, s64 ggtt_shift)
> +{
> + struct xe_guc *guc = ct_to_guc(ct);
> + struct xe_gt *gt = guc_to_gt(guc);
> + struct guc_ctb *h2g = &ct->ctbs.h2g;
> + u32 head, tail, size;
> + s32 avail;
early exit if shift == 0 ?
> +
> + if (unlikely(h2g->info.broken))
> + return;
> +
> + h2g->info.head = desc_read(ct_to_xe(ct), h2g, head);
> + head = h2g->info.head;
> + tail = READ_ONCE(h2g->info.tail);
> + size = h2g->info.size;
> +
> + if (unlikely(head > size))
> + goto corrupted;
> +
> + if (unlikely(tail >= size))
> + goto corrupted;
> +
> + avail = tail - head;
> +
> + /* beware of buffer wrap case */
> + if (unlikely(avail < 0))
> + avail += size;
> + xe_gt_dbg(gt, "available %d (%u:%u:%u)\n", avail, head, tail, size);
> + xe_gt_assert(gt, avail >= 0);
> +
> + while (avail > 0)
> + avail = ct_update_addresses_in_buffer(ct, h2g, ggtt_shift, &head, avail);
> +
> + return;
> +
> +corrupted:
> + xe_gt_err(gt, "Corrupted H2G descriptor head=%u tail=%u size=%u, fixups not applied\n",
> + head, tail, size);
> + h2g->info.broken = true;
> +}
> +
> static struct xe_guc_ct_snapshot *guc_ct_snapshot_alloc(struct xe_guc_ct *ct, bool atomic,
> bool want_ctb)
> {
> diff --git a/drivers/gpu/drm/xe/xe_guc_ct.h b/drivers/gpu/drm/xe/xe_guc_ct.h
> index 82c4ae458dda..5649bda82823 100644
> --- a/drivers/gpu/drm/xe/xe_guc_ct.h
> +++ b/drivers/gpu/drm/xe/xe_guc_ct.h
> @@ -22,6 +22,8 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot, struct drm_pr
> void xe_guc_ct_snapshot_free(struct xe_guc_ct_snapshot *snapshot);
> void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool want_ctb);
>
> +void xe_guc_ct_fixup_messages_with_ggtt(struct xe_guc_ct *ct, s64 ggtt_shift);
> +
> static inline bool xe_guc_ct_enabled(struct xe_guc_ct *ct)
> {
> return ct->state == XE_GUC_CT_STATE_ENABLED;
> diff --git a/drivers/gpu/drm/xe/xe_map.h b/drivers/gpu/drm/xe/xe_map.h
> index f62e0c8b67ab..db98c8fb121f 100644
> --- a/drivers/gpu/drm/xe/xe_map.h
> +++ b/drivers/gpu/drm/xe/xe_map.h
> @@ -78,6 +78,18 @@ static inline void xe_map_write32(struct xe_device *xe, struct iosys_map *map,
> iosys_map_wr(map__, offset__, type__, val__); \
> })
>
> +#define xe_map_rd_array(xe__, map__, index__, type__) \
> + xe_map_rd(xe__, map__, (index__) * sizeof(type__), type__)
> +
> +#define xe_map_wr_array(xe__, map__, index__, type__, val__) \
> + xe_map_wr(xe__, map__, (index__) * sizeof(type__), type__, val__)
> +
> +#define xe_map_rd_array_u32(xe__, map__, index__) \
> + xe_map_rd_array(xe__, map__, index__, u32)
> +
> +#define xe_map_wr_array_u32(xe__, map__, index__, val__) \
> + xe_map_wr_array(xe__, map__, index__, u32, val__)
> +
> #define xe_map_rd_field(xe__, map__, struct_offset__, struct_type__, field__) ({ \
> struct xe_device *__xe = xe__; \
> xe_device_assert_mem_access(__xe); \
> diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c
> index e70f1ceabbb3..2674fa948fda 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_vf.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c
> @@ -10,6 +10,7 @@
> #include "xe_gt.h"
> #include "xe_gt_sriov_printk.h"
> #include "xe_gt_sriov_vf.h"
> +#include "xe_guc_ct.h"
> #include "xe_pm.h"
> #include "xe_sriov.h"
> #include "xe_sriov_printk.h"
> @@ -158,6 +159,20 @@ static int vf_post_migration_requery_guc(struct xe_device *xe)
> return ret;
> }
>
> +static void vf_post_migration_fixup_ctb(struct xe_device *xe)
> +{
> + struct xe_gt *gt;
> + unsigned int id;
> +
> + xe_assert(xe, IS_SRIOV_VF(xe));
> +
> + for_each_gt(gt, xe, id) {
> + s32 shift = xe_gt_sriov_vf_ggtt_shift(gt);
> +
> + xe_guc_ct_fixup_messages_with_ggtt(>->uc.guc.ct, shift);
> + }
> +}
> +
> /*
> * vf_post_migration_imminent - Check if post-restore recovery is coming.
> * @xe: the &xe_device struct instance
> @@ -224,6 +239,9 @@ static void vf_post_migration_recovery(struct xe_device *xe)
>
> need_fixups = vf_post_migration_fixup_ggtt_nodes(xe);
> /* FIXME: add the recovery steps */
> + if (need_fixups)
> + vf_post_migration_fixup_ctb(xe);
> +
> vf_post_migration_notify_resfix_done(xe);
> xe_pm_runtime_put(xe);
> drm_notice(&xe->drm, "migration recovery ended\n");
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion
2025-04-08 11:59 ` Michal Wajdeczko
@ 2025-04-09 20:58 ` Lis, Tomasz
0 siblings, 0 replies; 23+ messages in thread
From: Lis, Tomasz @ 2025-04-09 20:58 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 08.04.2025 13:59, Michal Wajdeczko wrote:
> On 03.04.2025 20:40, Tomasz Lis wrote:
>> The balloon nodes, which are used to fill areas of GGTT inaccessible
>> for a specific VF, were allocated and inserted into GGTT within one
>> function. To be able to re-use that insertion code during VF
>> migration recovery, we need to split it.
>>
>> This patch separates allocation (init/fini functs) from the insertion
>> of balloons (balloon/deballoon functs). Locks are also moved to ensure
>> calls from post-migration recovery worker will not cause a deadlock.
>>
>> v2: Moved declarations to proper header
>> v3: Rephrased description, introduced "_locked" versions of some
>> functs, more lockdep checks, some functions renamed, altered error
>> handling, added missing kerneldocs.
>>
>> Signed-off-by: Tomasz Lis<tomasz.lis@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_ggtt.c | 11 +--
>> drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 102 +++++++++++++++++++++-------
>> drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 2 +
>> 3 files changed, 82 insertions(+), 33 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
>> index 5fcb2b4c2c13..769a8dc9be6e 100644
>> --- a/drivers/gpu/drm/xe/xe_ggtt.c
>> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
>> @@ -447,14 +447,13 @@ int xe_ggtt_node_insert_balloon(struct xe_ggtt_node *node, u64 start, u64 end)
>> xe_tile_assert(ggtt->tile, IS_ALIGNED(start, XE_PAGE_SIZE));
>> xe_tile_assert(ggtt->tile, IS_ALIGNED(end, XE_PAGE_SIZE));
>> xe_tile_assert(ggtt->tile, !drm_mm_node_allocated(&node->base));
>> + lockdep_assert_held(&ggtt->lock);
> since lock is now prerequisite, this function shall be renamed to:
>
> xe_ggtt_node_insert_balloon_locked()
>
> likely with update to kerneldoc like:
>
> "To be used in cases where ggtt->lock is already taken.
It now has the ggtt->lock dependency, but this is ggtt_node function and
not ggtt function.
But sure, will rename and comment.
>>
>> node->base.color = 0;
>> node->base.start = start;
>> node->base.size = end - start;
>>
>> - mutex_lock(&ggtt->lock);
>> err = drm_mm_reserve_node(&ggtt->mm, &node->base);
>> - mutex_unlock(&ggtt->lock);
>>
>> if (xe_gt_WARN(ggtt->tile->primary_gt, err,
>> "Failed to balloon GGTT %#llx-%#llx (%pe)\n",
>> @@ -477,16 +476,12 @@ void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node)
> same as in earlier comment, rename function to:
>
> xe_ggtt_node_remove_balloon_locked()
ok
>> return;
>>
>> if (!drm_mm_node_allocated(&node->base))
>> - goto free_node;
>> + return;
>>
>> + lockdep_assert_held(&node->ggtt->lock);
> this should be earlier in the function, as by API SLA lock must be
> always taken, not only when node is allocated
but should the asserts verify the API SLA, or real state inconsistencies?
either way - ok, will move.
>> xe_ggtt_dump_node(node->ggtt, &node->base, "remove-balloon");
>>
>> - mutex_lock(&node->ggtt->lock);
>> drm_mm_remove_node(&node->base);
>> - mutex_unlock(&node->ggtt->lock);
>> -
>> -free_node:
>> - xe_ggtt_node_fini(node);
>> }
>>
>> /**
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
>> index a439261bf4d7..c3ca33725161 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
>> @@ -560,35 +560,38 @@ u64 xe_gt_sriov_vf_lmem(struct xe_gt *gt)
>> return gt->sriov.vf.self_config.lmem_size;
>> }
>>
>> -static struct xe_ggtt_node *
>> -vf_balloon_ggtt_node(struct xe_ggtt *ggtt, u64 start, u64 end)
>> +static int vf_init_ggtt_balloons(struct xe_gt *gt)
>> {
>> - struct xe_ggtt_node *node;
>> - int err;
>> + struct xe_tile *tile = gt_to_tile(gt);
>> + struct xe_ggtt *ggtt = tile->mem.ggtt;
>>
>> - node = xe_ggtt_node_init(ggtt);
>> - if (IS_ERR(node))
>> - return node;
>> + tile->sriov.vf.ggtt_balloon[0] = xe_ggtt_node_init(ggtt);
>> + if (IS_ERR(tile->sriov.vf.ggtt_balloon[0]))
>> + return PTR_ERR(tile->sriov.vf.ggtt_balloon[0]);
>>
>> - err = xe_ggtt_node_insert_balloon(node, start, end);
>> - if (err) {
>> - xe_ggtt_node_fini(node);
>> - return ERR_PTR(err);
>> - }
>> + tile->sriov.vf.ggtt_balloon[1] = xe_ggtt_node_init(ggtt);
>> + if (IS_ERR(tile->sriov.vf.ggtt_balloon[1]))
>> + return PTR_ERR(tile->sriov.vf.ggtt_balloon[1]);
> what about ggtt_balloon[0] ? no need to fini() it ?
will add.
>>
>> - return node;
>> + return 0;
>> }
>>
>> -static int vf_balloon_ggtt(struct xe_gt *gt)
>> +/**
>> + * xe_gt_sriov_vf_balloon_ggtt_locked - Insert balloon nodes to limit used GGTT address range.
>> + * @gt: the &xe_gt struct instance
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt)
>> {
>> struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
>> struct xe_tile *tile = gt_to_tile(gt);
>> - struct xe_ggtt *ggtt = tile->mem.ggtt;
>> struct xe_device *xe = gt_to_xe(gt);
>> u64 start, end;
>> + int err;
>>
>> xe_gt_assert(gt, IS_SRIOV_VF(xe));
>> xe_gt_assert(gt, !xe_gt_is_media_type(gt));
>> + lockdep_assert_held(&tile->mem.ggtt->lock);
>>
>> if (!config->ggtt_size)
>> return -ENODATA;
>> @@ -611,33 +614,76 @@ static int vf_balloon_ggtt(struct xe_gt *gt)
>> start = xe_wopcm_size(xe);
>> end = config->ggtt_base;
>> if (end != start) {
>> - tile->sriov.vf.ggtt_balloon[0] = vf_balloon_ggtt_node(ggtt, start, end);
>> - if (IS_ERR(tile->sriov.vf.ggtt_balloon[0]))
>> - return PTR_ERR(tile->sriov.vf.ggtt_balloon[0]);
>> + err = xe_ggtt_node_insert_balloon(tile->sriov.vf.ggtt_balloon[0], start, end);
>> + if (err)
>> + return err;
>> }
>>
>> start = config->ggtt_base + config->ggtt_size;
>> end = GUC_GGTT_TOP;
>> if (end != start) {
>> - tile->sriov.vf.ggtt_balloon[1] = vf_balloon_ggtt_node(ggtt, start, end);
>> - if (IS_ERR(tile->sriov.vf.ggtt_balloon[1])) {
>> + err = xe_ggtt_node_insert_balloon(tile->sriov.vf.ggtt_balloon[1], start, end);
>> + if (err) {
>> xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[0]);
>> - return PTR_ERR(tile->sriov.vf.ggtt_balloon[1]);
>> + return err;
>> }
>> }
>>
>> return 0;
>> }
>>
>> -static void deballoon_ggtt(struct drm_device *drm, void *arg)
>> +static int vf_balloon_ggtt(struct xe_gt *gt)
>> {
>> - struct xe_tile *tile = arg;
>> + struct xe_ggtt *ggtt = gt_to_tile(gt)->mem.ggtt;
>> + int err;
>> +
>> + mutex_lock(&ggtt->lock);
>> + err = xe_gt_sriov_vf_balloon_ggtt_locked(gt);
>> + mutex_unlock(&ggtt->lock);
>> +
>> + return err;
>> +}
>> +
>> +/**
>> + * xe_gt_sriov_vf_deballoon_ggtt_locked - Remove balloon nodes which limited used address renge.
>> + * @gt: the &xe_gt struct instance
>> + */
>> +void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt)
>> +{
>> + struct xe_tile *tile = gt_to_tile(gt);
>>
>> xe_tile_assert(tile, IS_SRIOV_VF(tile_to_xe(tile)));
>> + lockdep_assert_held(&tile->mem.ggtt->lock);
> nit: IMO this is redundant as lock shall be asserted in
> xe_ggtt_node_remove_balloon_locked()
ok, will remove.
>> +
>> xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[1]);
>> xe_ggtt_node_remove_balloon(tile->sriov.vf.ggtt_balloon[0]);
>> }
>>
>> +static void vf_deballoon_ggtt(struct xe_gt *gt)
> hmm, in this patch you don't really need to split (de)balloon logic into
> locked/unlocked parts, so maybe keep it as it was and introduce such
> split when really needed
By this logic, we could squish everything into one patch. I do not "need
to" separate any parts.
Also, this has no impact - introducing this change does not affect final
code, and does not improve readability of single patches. It's just
cutting a pie slightly to the left or to the right.
I don't think such request should be part of a review. It seem to be a
matter of personal aesthetics rather than engineering.
The current division is no less consistent than the proposed one.
Actually, for code readability, it makes sense to introduce a locking
wrapper here even if locked version was unused.
> also it's quite unusual that unlocked part is named in completely
> different fashion than locked, can't it be (later) defined as pair of:
>
> xe_gt_sriov_vf_deballoon_ggtt_locked()
> xe_gt_sriov_vf_deballoon_ggtt()
>
> and
>
> xe_gt_sriov_vf_balloon_ggtt_locked()
> xe_gt_sriov_vf_balloon_ggtt()
We have established that static functions have shorter names, and we're
sticking to it. It is not unusual, it's the matter of project coding rules.
>> +{
>> + struct xe_tile *tile = gt_to_tile(gt);
>> +
>> + mutex_lock(&tile->mem.ggtt->lock);
>> + xe_gt_sriov_vf_deballoon_ggtt_locked(gt);
>> + mutex_unlock(&tile->mem.ggtt->lock);
>> +}
>> +
>> +static void vf_balloon_fini(struct xe_gt *gt)
>> +{
>> + struct xe_tile *tile = gt_to_tile(gt);
> missing asserts:
>
> xe_gt_assert(gt, IS_SRIOV_VF(xe));
> xe_gt_assert(gt, !xe_gt_is_media_type(gt));
will add.
-Tomasz
>> +
>> + xe_ggtt_node_fini(tile->sriov.vf.ggtt_balloon[1]);
>> + xe_ggtt_node_fini(tile->sriov.vf.ggtt_balloon[0]);
>> +}
>> +
>> +static void deballoon_and_fini_ggtt(struct drm_device *drm, void *arg)
>> +{
>> + struct xe_tile *tile = arg;
>> +
>> + vf_deballoon_ggtt(tile->primary_gt);
>> + vf_balloon_fini(tile->primary_gt);
>> +}
>> +
>> /**
>> * xe_gt_sriov_vf_prepare_ggtt - Prepare a VF's GGTT configuration.
>> * @gt: the &xe_gt
>> @@ -655,11 +701,17 @@ int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt)
>> if (xe_gt_is_media_type(gt))
>> return 0;
>>
>> - err = vf_balloon_ggtt(gt);
>> + err = vf_init_ggtt_balloons(gt);
>> if (err)
>> return err;
>>
>> - return drmm_add_action_or_reset(&xe->drm, deballoon_ggtt, tile);
>> + err = vf_balloon_ggtt(gt);
>> + if (err) {
>> + vf_balloon_fini(gt);
>> + return err;
>> + }
>> +
>> + return drmm_add_action_or_reset(&xe->drm, deballoon_and_fini_ggtt, tile);
>> }
>>
>> static int relay_action_handshake(struct xe_gt *gt, u32 *major, u32 *minor)
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
>> index ba6c5d74e326..d717deb8af91 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
>> @@ -18,6 +18,8 @@ int xe_gt_sriov_vf_query_config(struct xe_gt *gt);
>> int xe_gt_sriov_vf_connect(struct xe_gt *gt);
>> int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
>> int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt);
>> +int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt);
>> +void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt);
>> int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
>> void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
>>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 2/4] drm/xe/vf: Shifting GGTT area post migration
2025-04-08 13:23 ` Michal Wajdeczko
@ 2025-04-09 21:03 ` Lis, Tomasz
0 siblings, 0 replies; 23+ messages in thread
From: Lis, Tomasz @ 2025-04-09 21:03 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 08.04.2025 15:23, Michal Wajdeczko wrote:
> On 03.04.2025 20:40, Tomasz Lis wrote:
>> We have only one GGTT for all IOV functions, with each VF having assigned
>> a range of addresses for its use. After migration, a VF can receive a
>> different range of addresses than it had initially.
>>
>> This implements shifting GGTT addresses within drm_mm nodes, so that
>> VMAs stay valid after migration. This will make the driver use new
>> addresses when accessing GGTT from the moment the shifting ends.
>>
>> By taking the ggtt->lock for the period of VMA fixups, this change
>> also adds constraint on that mutex. Any locks used during the recovery
>> cannot ever wait for hardware response - because after migration,
>> the hardware will not do anything until fixups are finished.
>>
>> v2: Moved some functs to xe_ggtt.c; moved shift computation to just
>> after querying; improved documentation; switched some warns to asserts;
>> skipping fixups when GGTT shift eq 0; iterating through tiles (Michal)
>> v3: Updated kerneldocs, removed unused funct, properly allocate
>> balloning nodes if non existent
>> v4: Re-used ballooning functions from VF init, used bool in place of
>> standard error codes
>> v5: Renamed one function
>> v6: Subject tag change, several kerneldocs updated, some functions
>> renamed, some moved, added several asserts, shuffled declarations
>> of variables, revealed more detail in high level functions
>>
>> Signed-off-by: Tomasz Lis<tomasz.lis@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_ggtt.c | 39 ++++++++++
>> drivers/gpu/drm/xe/xe_ggtt.h | 1 +
>> drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 93 +++++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_gt_sriov_vf.h | 2 +
>> drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 2 +
>> drivers/gpu/drm/xe/xe_sriov_vf.c | 22 ++++++
>> 6 files changed, 159 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
>> index 769a8dc9be6e..ab6717671542 100644
>> --- a/drivers/gpu/drm/xe/xe_ggtt.c
>> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
>> @@ -484,6 +484,45 @@ void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node)
>> drm_mm_remove_node(&node->base);
>> }
>>
>> +/**
>> + * xe_ggtt_shift_nodes - Shift GGTT nodes to adjust for a change in usable address range.
>> + * @ggtt: the &xe_ggtt struct instance
>> + * @shift: change to the location of area provisioned for current VF
>> + *
>> + * This function moves all nodes from the GGTT VM, to a temp list. These nodes are expected
>> + * to represent allocations in range formerly assigned to current VF, before the range changed.
>> + * When the GGTT VM is completely clear of any nodes, they are re-added with shifted offsets.
>> + *
>> + * The function has no ability of failing - because it shifts existing nodes, without
>> + * any additional processing. If the nodes were successfully existing at the old address,
>> + * they will do the same at the new one. A fail inside this function would indicate that> + * the list of nodes was either already damaged, or that the shift
> brings the address ramge
>
> typo
right
>> + * outside of valid bounds. Both cases justify an assert rather than error code.
>> + */
>> +void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, s64 shift)
> xe_ggtt_shift_nodes_locked() ?
will rename
>> +{
> struct xe_tile *tile __maybe_unused = ggtt->tile;
ok
>> + struct drm_mm_node *node, *tmpn;
>> + LIST_HEAD(temp_list_head);
>> + int err;
>> +
>> + lockdep_assert_held(&ggtt->lock);
>> +
> what about doing early exit here if shift is 0?
>
> if (!shift)
> return;
>
> your asserts below will be simpler
I don't see how this would make the asserts simpler. I see this as just
extra 2 or 3 lines with no effect on functionality.
>> + drm_mm_for_each_node_safe(node, tmpn, &ggtt->mm) {
> btw, shouldn't we have asserts here instead?
our intention is not to verify the previous list of nodes, but the new one.
>> + drm_mm_remove_node(node);
>> + list_add(&node->node_list, &temp_list_head);
>> + }
>> +
>> + list_for_each_entry_safe(node, tmpn, &temp_list_head, node_list) {
>> + xe_tile_assert(ggtt->tile, shift >= 0 || node->start >= (u64)(-shift));
> shouldn't this be:
>
> xe_tile_assert(tile, node->start + shift >= xe_wopcm_size(xe));
> xe_tile_assert(tile, node->start + node->size + shift <
> ggtt->size - xe_wopcm_size(xe));
that's not equivalent, as addition could lead to overflow. This way
we're ignoring overflow, and accepting the shift if only the wrapped
value falls into proper range.
but - while it's less useful, it's also a lot cleaner looking and has
lower chance of getting misinterpreted later. so, will change.
> or maybe better introduce:
>
> xe_ggtt_assert_fit(ggtt, start, size)
> {
> xe_tile_assert(tile, start >= wopcm);
> xe_tile_assert(tile, start + size < ggtt->size - wopcm);
> }
>
> and then:
>
> xe_ggtt_assert_fit(ggtt, node->start + shift, node->size);
This make it completely impossible to detect overflow. But, will do.
>> + xe_tile_assert(ggtt->tile, shift <= 0 || node->start + node->size <
>> + node->start + node->size + (u64)shift);
>> + list_del(&node->node_list);
>> + node->start += shift;
>> + err = drm_mm_reserve_node(&ggtt->mm, node);
>> + xe_tile_assert(ggtt->tile, !err);
>> + }
>> +}
>> +
>> /**
>> * xe_ggtt_node_insert_locked - Locked version to insert a &xe_ggtt_node into the GGTT
>> * @node: the &xe_ggtt_node to be inserted
>> diff --git a/drivers/gpu/drm/xe/xe_ggtt.h b/drivers/gpu/drm/xe/xe_ggtt.h
>> index 27e7d67de004..eb39023c4e1b 100644
>> --- a/drivers/gpu/drm/xe/xe_ggtt.h
>> +++ b/drivers/gpu/drm/xe/xe_ggtt.h
>> @@ -18,6 +18,7 @@ void xe_ggtt_node_fini(struct xe_ggtt_node *node);
>> int xe_ggtt_node_insert_balloon(struct xe_ggtt_node *node,
>> u64 start, u64 size);
>> void xe_ggtt_node_remove_balloon(struct xe_ggtt_node *node);
>> +void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, s64 shift);
>>
>> int xe_ggtt_node_insert(struct xe_ggtt_node *node, u32 size, u32 align);
>> int xe_ggtt_node_insert_locked(struct xe_ggtt_node *node,
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
>> index c3ca33725161..50b0c3b7be8c 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c
>> @@ -415,12 +415,20 @@ static int vf_get_ggtt_info(struct xe_gt *gt)
>> xe_gt_sriov_dbg_verbose(gt, "GGTT %#llx-%#llx = %lluK\n",
>> start, start + size - 1, size / SZ_1K);
>>
>> + config->ggtt_shift = start - (s64)config->ggtt_base;
>> config->ggtt_base = start;
>> config->ggtt_size = size;
>>
>> return config->ggtt_size ? 0 : -ENODATA;
>> }
>>
>> +s32 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt)
> public functions are required to have kernel-doc
ok
>> +{
>> + struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
>> +
>> + return config->ggtt_shift;
>> +}
>> +
>> static int vf_get_lmem_info(struct xe_gt *gt)
>> {
>> struct xe_gt_sriov_vf_selfconfig *config = >->sriov.vf.self_config;
>> @@ -809,6 +817,91 @@ int xe_gt_sriov_vf_connect(struct xe_gt *gt)
>> return err;
>> }
>>
>> +/**
>> + * DOC: GGTT nodes shifting during VF post-migration recovery
>> + *
>> + * The first fixup applied to the VF KMD structures as part of post-migration
>> + * recovery is shifting nodes within xe_ggtt instance. The nodes are moved
>> + * from range previously assigned to this VF, into newly provisioned area.
>> + * The chanes include balloons, which are resized accordingly.
> typo
ok
>> + *
>> + * The balloon nodes are there to eliminate unavailable ranges from use: one
>> + * reserves the GGTT area below the range for current VF, and another one
>> + * reserves area above.
>> + *
>> + * Below is a GGTT layout of example VF, with a certain address range assigned to
>> + * said VF, and inaccessible areas above and below:
>> + *
>> + * 0 4GiB
>> + * |<--------------------------- Total GGTT size ----------------------------->|
>> + * WOPCM GUC_TOP
>> + * |<-------------- Area mappable by xe_ggtt instance ---------------->|
>> + *
>> + * +---+---------------------------------+----------+----------------------+---+
>> + * |\\\|/////////////////////////////////| VF mem |//////////////////////|\\\|
>> + * +---+---------------------------------+----------+----------------------+---+
>> + *
>> + * Hardware enforced access rules before migration:
>> + *
>> + * |<------- inaccessible for VF ------->|<VF owned>|<-- inaccessible for VF ->|
>> + *
>> + * GGTT nodes used for tracking allocations:
>> + *
>> + * |<----------- balloon ------------>|<- nodes->|<----- balloon ------>|
>> + *
>> + * After the migration, GGTT area assigned to the VF might have shifted, either
>> + * to lower or to higher address. But we expect the total size and extra areas to
>> + * be identical, as migration can only happen between matching platforms.
>> + * Below is an example of GGTT layout of the VF after migration. Content of the
>> + * GGTT for VF has been moved to a new area, and we receive its address from GuC:
>> + *
>> + * +---+----------------------+----------+---------------------------------+---+
>> + * |\\\|//////////////////////| VF mem |/////////////////////////////////|\\\|
>> + * +---+----------------------+----------+---------------------------------+---+
>> + *
>> + * Hardware enforced access rules after migration:
>> + *
>> + * |<- inaccessible for VF -->|<VF owned>|<------- inaccessible for VF ------->|
>> + *
>> + * So the VF has a new slice of GGTT assigned, and during migration process, the
>> + * memory content was copied to that new area. But the drm_mm nodes within xe kmd
>> + * are still tracking allocations using the old addresses. The nodes within VF
>> + * owned area have to be shifted, and balloon nodes need to be resized to
>> + * properly mask out areas not owned by the VF.
>> + *
>> + * Fixed drm_mm nodes used for tracking allocations:
>> + *
>> + * |<------ balloon ------>|<- nodes->|<----------- balloon ----------->|
>> + *
>> + * Due to use of GPU profiles, we do not expect the old and new GGTT ares to
>> + * overlap; but our node shifting will fix addresses properly regardless.
>> + */
>> +
>> +/**
>> + * xe_gt_sriov_vf_fixup_ggtt_nodes - Shift GGTT allocations to match assigned range.
>> + * @gt: the &xe_gt struct instance
>> + * @ggtt_shift: the shift value
>> + *
>> + * Since Global GTT is not virtualized, each VF has an assigned range
>> + * within the global space. This range might have changed during migration,
>> + * which requires all memory addresses pointing to GGTT to be shifted.
>> + */
>> +void xe_gt_sriov_vf_fixup_ggtt_nodes(struct xe_gt *gt, s64 ggtt_shift)
>> +{
>> + struct xe_tile *tile = gt_to_tile(gt);
>> + struct xe_ggtt *ggtt = tile->mem.ggtt;
>> +
>> + xe_gt_assert(gt, !xe_gt_is_media_type(gt));
>> +
>> + mutex_lock(&ggtt->lock);
>> + if (ggtt_shift) {
> early exit before taking a lock?
This whole condition is pointless and brings no benefit. Will remove.
>> + xe_gt_sriov_vf_deballoon_ggtt_locked(gt);
>> + xe_ggtt_shift_nodes(ggtt, ggtt_shift);
>> + xe_gt_sriov_vf_balloon_ggtt_locked(gt);
>> + }
>> + mutex_unlock(&ggtt->lock);
>> +}
>> +
>> /**
>> * xe_gt_sriov_vf_migrated_event_handler - Start a VF migration recovery,
>> * or just mark that a GuC is ready for it.
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
>> index d717deb8af91..904a600063e6 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.h
>> @@ -20,6 +20,8 @@ int xe_gt_sriov_vf_query_runtime(struct xe_gt *gt);
>> int xe_gt_sriov_vf_prepare_ggtt(struct xe_gt *gt);
>> int xe_gt_sriov_vf_balloon_ggtt_locked(struct xe_gt *gt);
>> void xe_gt_sriov_vf_deballoon_ggtt_locked(struct xe_gt *gt);
>> +s32 xe_gt_sriov_vf_ggtt_shift(struct xe_gt *gt);
>> +void xe_gt_sriov_vf_fixup_ggtt_nodes(struct xe_gt *gt, s64 ggtt_shift);
>> int xe_gt_sriov_vf_notify_resfix_done(struct xe_gt *gt);
>> void xe_gt_sriov_vf_migrated_event_handler(struct xe_gt *gt);
>>
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
>> index a57f13b5afcd..5ccbdf8d08b6 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h
>> @@ -40,6 +40,8 @@ struct xe_gt_sriov_vf_selfconfig {
>> u64 ggtt_base;
>> /** @ggtt_size: assigned size of the GGTT region. */
>> u64 ggtt_size;
>> + /** @ggtt_shift: difference in ggtt_base on last migration */
>> + s64 ggtt_shift;
>> /** @lmem_size: assigned size of the LMEM. */
>> u64 lmem_size;
>> /** @num_ctxs: assigned number of GuC submission context IDs. */
>> diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c
>> index c1275e64aa9c..e70f1ceabbb3 100644
>> --- a/drivers/gpu/drm/xe/xe_sriov_vf.c
>> +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c
>> @@ -7,6 +7,7 @@
>>
>> #include "xe_assert.h"
>> #include "xe_device.h"
>> +#include "xe_gt.h"
>> #include "xe_gt_sriov_printk.h"
>> #include "xe_gt_sriov_vf.h"
>> #include "xe_pm.h"
>> @@ -170,6 +171,25 @@ static bool vf_post_migration_imminent(struct xe_device *xe)
>> work_pending(&xe->sriov.vf.migration.worker);
>> }
>>
>> +static bool vf_post_migration_fixup_ggtt_nodes(struct xe_device *xe)
> nit: the "fixup" word in the function name here, which means "shift"
> here, slightly conflicts with the "fixup" in the steps we plan to do
> later, where we actually will do some "fixup" due to shifted GGTT
The shifting of nodes is not a pre-fixup part, it is already a fixup.
The xe_ggtt requires fixups.
Whether subsequent fixups will use already fixed xe_ggtt or apply the
shift directly, it just an implementation decision.
> so maybe:
>
> s/vf_post_migration_fixup_ggtt_nodes/vf_post_migration_shift_ggtt_nodes
> s/xe_gt_sriov_vf_fixup_ggtt_nodes/xe_gt_sriov_vf_shift_ggtt_nodes
>
> but likely you will resist like always ...
True, I will always resist changes which go against some general concepts.
In this case, we have post-migration recovery. The purpose of
post-migration recovery is - by arch document - to do fixups. One of the
fixups is shifting drm_mm nodes wrapped with xe_ggtt.
So the order of detail is: recovery [contains]-> fixups [contains]->
shifting. Naming of functions should correspond to this order.
With that, `vf_post_migration_fixup_ggtt_nodes()` is the name best
representing both what is being done, and the architectural concept.
For what is called within - currently
`xe_gt_sriov_vf_fixup_ggtt_nodes()` - that function is doing the same
thing just on different level of objects, so the name should use the
same wording.
Especially after, due to the review changes, it now consists of 3 steps:
deballoon, shift nodes, re-balloon. These 3 steps can be nicely called
fixing up ggtt nodes.
-Tomasz
>> +{
>> + bool need_fixups = false;
>> + struct xe_tile *tile;
>> + unsigned int id;
>> +
>> + for_each_tile(tile, xe, id) {
>> + struct xe_gt *gt = tile->primary_gt;
>> + s64 shift;
>> +
>> + shift = xe_gt_sriov_vf_ggtt_shift(gt);
>> + if (shift) {
>> + need_fixups = true;
>> + xe_gt_sriov_vf_fixup_ggtt_nodes(gt, shift);
>> + }
>> + }
>> + return need_fixups;
>> +}
>> +
>> /*
>> * Notify all GuCs about resource fixups apply finished.
>> */
>> @@ -191,6 +211,7 @@ static void vf_post_migration_notify_resfix_done(struct xe_device *xe)
>>
>> static void vf_post_migration_recovery(struct xe_device *xe)
>> {
>> + bool need_fixups;
>> int err;
>>
>> drm_dbg(&xe->drm, "migration recovery in progress\n");
>> @@ -201,6 +222,7 @@ static void vf_post_migration_recovery(struct xe_device *xe)
>> if (unlikely(err))
>> goto fail;
>>
>> + need_fixups = vf_post_migration_fixup_ggtt_nodes(xe);
>> /* FIXME: add the recovery steps */
>> vf_post_migration_notify_resfix_done(xe);
>> xe_pm_runtime_put(xe);
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 3/4] drm/xe/guc: Introduce enum with offsets for context register H2Gs
2025-04-08 13:34 ` Michal Wajdeczko
@ 2025-04-09 21:04 ` Lis, Tomasz
0 siblings, 0 replies; 23+ messages in thread
From: Lis, Tomasz @ 2025-04-09 21:04 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
[-- Attachment #1: Type: text/plain, Size: 5309 bytes --]
On 08.04.2025 15:34, Michal Wajdeczko wrote:
> On 03.04.2025 20:40, Tomasz Lis wrote:
>> Some GuC messages are constructed with incrementing dword counter
>> rather than referencing specific DWORDs, as described in GuC interface
>> specification.
>>
>> This change introduces the definitions of DWORD numbers for parameters
>> which will need to be referenced in a CTB parser to be added in a
>> following patch. To ensure correctness of these DWORDs, verification
>> in form of asserts was added to the message construction code.
>>
>> v2: Renamed enum members, added ones for single context registration,
>> modified asserts to check values rather than indexes.
>>
>> Signed-off-by: Tomasz Lis<tomasz.lis@intel.com>
>> Suggested-by: Michal Wajdeczko<michal.wajdeczko@intel.com>
>> ---
>> drivers/gpu/drm/xe/abi/guc_actions_abi.h | 29 ++++++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_guc_submit.c | 22 ++++++++++++++++++
>> 2 files changed, 51 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/abi/guc_actions_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
>> index 448afb86e05c..64c71526356e 100644
>> --- a/drivers/gpu/drm/xe/abi/guc_actions_abi.h
>> +++ b/drivers/gpu/drm/xe/abi/guc_actions_abi.h
>> @@ -161,6 +161,35 @@ enum xe_guc_preempt_options {
>> XE_GUC_PREEMPT_OPTION_DROP_SUBMIT_Q = 0x8,
>> };
>>
>> +enum xe_guc_register_context_param_offsets {
>> + XE_GUC_REGISTER_CONTEXT_DATA_0_MBZ = 0,
>> + XE_GUC_REGISTER_CONTEXT_DATA_1_FLAGS,
>> + XE_GUC_REGISTER_CONTEXT_DATA_2_CONTEXT_INDEX,
>> + XE_GUC_REGISTER_CONTEXT_DATA_3_ENGINE_CLASS,
>> + XE_GUC_REGISTER_CONTEXT_DATA_4_ENGINE_SUBMIT_MASK,
>> + XE_GUC_REGISTER_CONTEXT_DATA_5_WQ_DESC_ADDR_LOWER,
>> + XE_GUC_REGISTER_CONTEXT_DATA_6_WQ_DESC_ADDR_UPPER,
>> + XE_GUC_REGISTER_CONTEXT_DATA_7_WQ_BUF_BASE_LOWER,
>> + XE_GUC_REGISTER_CONTEXT_DATA_8_WQ_BUF_BASE_UPPER,
>> + XE_GUC_REGISTER_CONTEXT_DATA_9_WQ_BUF_SIZE,
>> + XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR,
>> +};
>> +
>> +enum xe_guc_register_context_multi_lrc_param_offsets {
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_0_MBZ = 0,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_1_FLAGS,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_2_PARENT_CONTEXT,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_3_ENGINE_CLASS,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_4_ENGINE_SUBMIT_MASK,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_6_WQ_DESC_ADDR_UPPER,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_8_WQ_BUF_BASE_UPPER,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_9_WQ_BUF_SIZE,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR,
>> +};
>> +
>> enum xe_guc_report_status {
>> XE_GUC_REPORT_STATUS_UNKNOWN = 0x0,
>> XE_GUC_REPORT_STATUS_ACKED = 0x1,
>> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
>> index 31bc2022bfc2..63ef06d3a28f 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
>> @@ -485,6 +485,18 @@ static void __register_mlrc_exec_queue(struct xe_guc *guc,
>> action[len++] = upper_32_bits(xe_lrc_descriptor(lrc));
>> }
>>
> nit: if we want to keep these asserts then small comment saying
>
> /* explicitly checks some fields that we might fixup later */
>
> will not hurt
will add
>> + xe_gt_assert(guc_to_gt(guc),
>> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER]
>> + == info->wq_desc_lo);
>> + xe_gt_assert(guc_to_gt(guc),
>> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER]
>> + == info->wq_base_lo);
>> + xe_gt_assert(guc_to_gt(guc),
>> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS]
>> + == q->width);
>> + xe_gt_assert(guc_to_gt(guc),
>> + action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR]
>> + == info->hwlrca_lo);
> maybe we can spare one line in each assert by:
>
> xe_gt_assert(guc_to_gt(guc), info->hwlrca_lo ==
> action[XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR]);
>
> or by introducing:
>
> xe_guc_assert(guc, cond)
>
> or by ignoring 100 column limit - it will not be first time in xe ;)
will switch order of operands.
a macro wouldn't be much better, unless it merges the enum name, ie.
`XE_GUC_REGISTER_CONTEXT_ ## part_name`.
But I really don't like such techniques, as I then _always_ hear someone
can't find the name and is confused.
-Tomasz
>> xe_gt_assert(guc_to_gt(guc), len <= MAX_MLRC_REG_SIZE);
>> #undef MAX_MLRC_REG_SIZE
>>
>> @@ -509,6 +521,16 @@ static void __register_exec_queue(struct xe_guc *guc,
>> info->hwlrca_hi,
>> };
>>
>> + xe_gt_assert(guc_to_gt(guc),
>> + action[XE_GUC_REGISTER_CONTEXT_DATA_5_WQ_DESC_ADDR_LOWER]
>> + == info->wq_desc_lo);
>> + xe_gt_assert(guc_to_gt(guc),
>> + action[XE_GUC_REGISTER_CONTEXT_DATA_7_WQ_BUF_BASE_LOWER]
>> + == info->wq_base_lo);
>> + xe_gt_assert(guc_to_gt(guc),
>> + action[XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR]
>> + == info->hwlrca_lo);
>> +
>> xe_guc_ct_send(&guc->ct, action, ARRAY_SIZE(action), 0, 0);
>> }
>>
> otherwise, since I don't have better ideas for enum names, LGTM
>
[-- Attachment #2: Type: text/html, Size: 6363 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration
2025-04-08 14:23 ` Michal Wajdeczko
@ 2025-04-09 21:09 ` Lis, Tomasz
2025-04-10 18:24 ` Michal Wajdeczko
0 siblings, 1 reply; 23+ messages in thread
From: Lis, Tomasz @ 2025-04-09 21:09 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
[-- Attachment #1: Type: text/plain, Size: 13373 bytes --]
On 08.04.2025 16:23, Michal Wajdeczko wrote:
> On 03.04.2025 20:40, Tomasz Lis wrote:
>> During post-migration recovery of a VF, it is necessary to update
>> GGTT references included in messages which are going to be sent
>> to GuC. GuC will start consuming messages after VF KMD will inform
>> it about fixups being done; before that, the VF KMD is expected
>> to update any H2G messages which are already in send buffer but
>> were not consumed by GuC.
>>
>> Only a small subset of messages allowed for VFs have GGTT references
>> in them. This patch adds the functionality to parse the CTB send
>> ring buffer and shift addresses contained within.
>>
>> While fixing the CTB content, ct->lock is not taken. This means
>> the only barrier taken remains GGTT address lock - which is ok,
>> because only requests with GGTT addresses matter, but it also means
>> tail changes can happen during the CTB fixups execution (which may
>> be ignored as any new messages will not have anything to fix).
>>
>> The GGTT address locking will be introduced in a future series.
>>
>> v2: removed storing shift as that's now done in VMA nodes patch;
>> macros to inlines; warns to asserts; log messages fixes (Michal)
>> v3: removed inline keywords, enums for offsets in CTB messages,
>> less error messages, if return unused then made functs void (Michal)
>> v4: update the cached head before starting fixups
>> v5: removed/updated comments, wrapped lines, converted assert into
>> error, enums for offsets to separate patch, reused xe_map_rd
>> v6: define xe_map_*_array() macros, support CTB wrap which divides
>> a message, updated comments, moved one function to an earlier patch
>>
>> Signed-off-by: Tomasz Lis<tomasz.lis@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_guc_ct.c | 147 +++++++++++++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_guc_ct.h | 2 +
>> drivers/gpu/drm/xe/xe_map.h | 12 +++
>> drivers/gpu/drm/xe/xe_sriov_vf.c | 18 ++++
>> 4 files changed, 179 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
>> index 686fe664c20d..add2d9b12345 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_ct.c
>> +++ b/drivers/gpu/drm/xe/xe_guc_ct.c
>> @@ -84,6 +84,8 @@ struct g2h_fence {
>> bool done;
>> };
>>
>> +#define make_u64(hi, lo) ((u64)((u64)(u32)(hi) << 32 | (u32)(lo)))
>> +
>> static void g2h_fence_init(struct g2h_fence *g2h_fence, u32 *response_buffer)
>> {
>> g2h_fence->response_buffer = response_buffer;
>> @@ -1622,6 +1624,151 @@ static void g2h_worker_func(struct work_struct *w)
>> receive_g2h(ct);
>> }
>>
>> +static void xe_ring_map_fixup_u64(struct xe_device *xe, struct iosys_map *cmds,
>> + u32 size, u32 head, u32 pos, s64 shift)
>> +{
>> + u32 hi, lo;
>> + u64 offset;
>> +
>> + lo = xe_map_rd_array_u32(xe, cmds, (head + pos) % size);
>> + hi = xe_map_rd_array_u32(xe, cmds, (head + pos + 1) % size);
>> + offset = make_u64(hi, lo);
>> + offset += shift;
>> + lo = lower_32_bits(offset);
>> + hi = upper_32_bits(offset);
>> + xe_map_wr_array_u32(xe, cmds, (head + pos) % size, lo);
>> + xe_map_wr_array_u32(xe, cmds, (head + pos + 1) % size, hi);
>> +}
>> +
>> +/*
>> + * Shift any GGTT addresses within a single message left within CTB from
>> + * before post-migration recovery.
>> + * @ct: pointer to CT struct of the target GuC
>> + * @cmds: iomap buffer containing CT messages
>> + * @head: start of the target message within the buffer
>> + * @len: length of the target message
>> + * @size: size of the commands buffer
>> + * @shift: the address shift to be added to each GGTT reference
>> + */
>> +static void ct_update_addresses_in_message(struct xe_guc_ct *ct,
> s/ct_update_addresses_in_message/ct_fixup_ggtt_in_message
ok
>> + struct iosys_map *cmds, u32 head,
>> + u32 len, u32 size, s64 shift)
>> +{
>> + struct xe_device *xe = ct_to_xe(ct);
>> + u32 action, i, n;
>> + u32 msg[1];
> u32 msg;
> or
> u32 msg[GUC_HXG_MSG_MIN_LEN];
I want an array, so will go with 2nd. Though this looks like unjustified
obfuscation to me.
>> +
>> + xe_map_memcpy_from(xe, msg, cmds, head * sizeof(u32),
>> + 1 * sizeof(u32));
> please use helpers that you already have:
>
> msg[0] = xe_map_rd_array_u32(xe, cmds, head);
ok
>> + action = FIELD_GET(GUC_HXG_REQUEST_MSG_0_ACTION, msg[0]);
>> + switch (action) {
>> + case XE_GUC_ACTION_REGISTER_CONTEXT:
> maybe don't super-optimize by hand and just do those 3x fixups here,
> using related XE_GUC_REGISTER_CONTEXT_DATA_xxx definitions?
>
> it looks weird to have 2x "case" statements and then "if (case)" anyway,
> plus mixed enums that just accidentally points to the same offsets
will separate cases. The optimizing compiler will merge them anyway, I
did one to avoid introducing more barely used enums.
(the ones we introduced in last round)
>> + case XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC:
>> + xe_ring_map_fixup_u64(xe, cmds, size, head,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_5_WQ_DESC_ADDR_LOWER,
>> + shift);
>> + xe_ring_map_fixup_u64(xe, cmds, size, head,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_7_WQ_BUF_BASE_LOWER,
>> + shift);
>> + if (action == XE_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC) {
>> + n = xe_map_rd_array_u32(xe, cmds, head +
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_10_NUM_CTXS);
>> + for (i = 0; i < n; i++)
>> + xe_ring_map_fixup_u64(xe, cmds, size, head,
>> + XE_GUC_REGISTER_CONTEXT_MULTI_LRC_DATA_11_HW_LRC_ADDR
>> + + 2 * i, shift);
>> + } else {
>> + xe_ring_map_fixup_u64(xe, cmds, size, head,
>> + XE_GUC_REGISTER_CONTEXT_DATA_10_HW_LRC_ADDR, shift);
>> + }
>> + break;
>> + default:
>> + break;
>> + }
>> +}
>> +
>> +static int ct_update_addresses_in_buffer(struct xe_guc_ct *ct,
> s/ct_update_addresses_in_buffer/ct_fixup_ggtt_in_buffer
ok
>> + struct guc_ctb *h2g,
> nit: this is redundant
oh I see. by "this" you mean a spaced out separate line.
>> + s64 shift, u32 *mhead, s32 avail)
> can you describe what is this mhead?
this is a static function. but ok, will describe its parameters.
>> +{
>> + struct xe_device *xe = ct_to_xe(ct);
>> + u32 head = *mhead;
>> + u32 size = h2g->info.size;
>> + u32 msg[1];
> u32 msg;
> or
> u32 msg[GUC_CTB_MSG_MIN_LEN];
>
>> + u32 len;
> please try to order vars in rev-xmas-tree
ok
>> +
>> + /* Read header */
> you should at least assert that avail > 0 before reading even single u32
>
> xe_gt_assert(gt, avail >= GUC_CTB_MSG_MIN_LEN);
This is a static function, and the caller is ensuring that. But sure, I
can add the assert.
> but since it is called in the loop, more appropriate would be:
>
> if (avail < GUC_CTB_MSG_MIN_LEN)
> goto broken;
I don't know what you mean by that. There are not that many
possibilities for an integer value greater than 0 but smaller than 1.
And by the changes I agreed to above and below, we've already ensured
that GUC_CTB_MSG_MIN_LEN can only be equal to 1.
>> + xe_map_memcpy_from(xe, msg, &h2g->cmds, sizeof(u32) * head,
>> + sizeof(u32));
> msg[0] = xe_map_rd_array_u32(xe, cmds, head);
ok
>> + len = FIELD_GET(GUC_CTB_MSG_0_NUM_DWORDS, msg[0]) + GUC_CTB_MSG_MIN_LEN;
>> +
>> + if (unlikely(len > (u32)avail)) {
>> + xe_gt_err(ct_to_gt(ct), "H2G channel broken on read, avail=%d, len=%d, fixups skipped\n",
>> + avail, len);
>> + return 0;
>> + }
>> +
>> + head = (head + 1) % size;
> maybe don't update head here as you need to reverse it two lines below?
That value is never being changed again.
> and this magic "1" is GUC_CTB_MSG_MIN_LEN
ok
>> + ct_update_addresses_in_message(ct, &h2g->cmds, head, len - 1, size, shift);
> msg_len_to_hxg_len() instead of "len - 1" ?
wow, we have a helper even decrementing length? ok, will use.
>> + *mhead = (head + len - 1) % size;
> maybe it's time to introduce
>
> u32 move_head(u32 head, u32 step, u32 size)
We are overdefining a lot of things already. I don't think we should
press even harder in that direction.
>> +
>> + return avail - len;
>> +}
>> +
>> +/**
>> + * xe_guc_ct_fixup_messages_with_ggtt - Fixup any pending H2G CTB messages
>> + * @ct: pointer to CT struct of the target GuC
>> + * @ggtt_shift: shift to be added to all GGTT addresses within the CTB
>> + *
>> + * Messages in guc-to-host CTB are owned by GuC and any fixups in them
>> + * are made by GuC. But content of the host-to-guc CTB is owned by the
>> + * KMD, so fixups to GGTT references in any pending messages need to be
>> + * applied here.
> s/guc-to-host/H2G
>
> like you have earlier and below
Earlier is a short description. Below I am using shortcut after defining
it in this line. This is how the long comments should look like,
abbreviations should be defined.
>> + * This function updates GGTT offsets in payloads of pending H2G CTB
>> + * messages (messages which were not consumed by GuC before the VF got
>> + * paused).
>> + */
>> +void xe_guc_ct_fixup_messages_with_ggtt(struct xe_guc_ct *ct, s64 ggtt_shift)
>> +{
>> + struct xe_guc *guc = ct_to_guc(ct);
>> + struct xe_gt *gt = guc_to_gt(guc);
>> + struct guc_ctb *h2g = &ct->ctbs.h2g;
>> + u32 head, tail, size;
>> + s32 avail;
> early exit if shift == 0 ?
There is no need for such optimizations.
-Tomasz
>> +
>> + if (unlikely(h2g->info.broken))
>> + return;
>> +
>> + h2g->info.head = desc_read(ct_to_xe(ct), h2g, head);
>> + head = h2g->info.head;
>> + tail = READ_ONCE(h2g->info.tail);
>> + size = h2g->info.size;
>> +
>> + if (unlikely(head > size))
>> + goto corrupted;
>> +
>> + if (unlikely(tail >= size))
>> + goto corrupted;
>> +
>> + avail = tail - head;
>> +
>> + /* beware of buffer wrap case */
>> + if (unlikely(avail < 0))
>> + avail += size;
>> + xe_gt_dbg(gt, "available %d (%u:%u:%u)\n", avail, head, tail, size);
>> + xe_gt_assert(gt, avail >= 0);
>> +
>> + while (avail > 0)
>> + avail = ct_update_addresses_in_buffer(ct, h2g, ggtt_shift, &head, avail);
>> +
>> + return;
>> +
>> +corrupted:
>> + xe_gt_err(gt, "Corrupted H2G descriptor head=%u tail=%u size=%u, fixups not applied\n",
>> + head, tail, size);
>> + h2g->info.broken = true;
>> +}
>> +
>> static struct xe_guc_ct_snapshot *guc_ct_snapshot_alloc(struct xe_guc_ct *ct, bool atomic,
>> bool want_ctb)
>> {
>> diff --git a/drivers/gpu/drm/xe/xe_guc_ct.h b/drivers/gpu/drm/xe/xe_guc_ct.h
>> index 82c4ae458dda..5649bda82823 100644
>> --- a/drivers/gpu/drm/xe/xe_guc_ct.h
>> +++ b/drivers/gpu/drm/xe/xe_guc_ct.h
>> @@ -22,6 +22,8 @@ void xe_guc_ct_snapshot_print(struct xe_guc_ct_snapshot *snapshot, struct drm_pr
>> void xe_guc_ct_snapshot_free(struct xe_guc_ct_snapshot *snapshot);
>> void xe_guc_ct_print(struct xe_guc_ct *ct, struct drm_printer *p, bool want_ctb);
>>
>> +void xe_guc_ct_fixup_messages_with_ggtt(struct xe_guc_ct *ct, s64 ggtt_shift);
>> +
>> static inline bool xe_guc_ct_enabled(struct xe_guc_ct *ct)
>> {
>> return ct->state == XE_GUC_CT_STATE_ENABLED;
>> diff --git a/drivers/gpu/drm/xe/xe_map.h b/drivers/gpu/drm/xe/xe_map.h
>> index f62e0c8b67ab..db98c8fb121f 100644
>> --- a/drivers/gpu/drm/xe/xe_map.h
>> +++ b/drivers/gpu/drm/xe/xe_map.h
>> @@ -78,6 +78,18 @@ static inline void xe_map_write32(struct xe_device *xe, struct iosys_map *map,
>> iosys_map_wr(map__, offset__, type__, val__); \
>> })
>>
>> +#define xe_map_rd_array(xe__, map__, index__, type__) \
>> + xe_map_rd(xe__, map__, (index__) * sizeof(type__), type__)
>> +
>> +#define xe_map_wr_array(xe__, map__, index__, type__, val__) \
>> + xe_map_wr(xe__, map__, (index__) * sizeof(type__), type__, val__)
>> +
>> +#define xe_map_rd_array_u32(xe__, map__, index__) \
>> + xe_map_rd_array(xe__, map__, index__, u32)
>> +
>> +#define xe_map_wr_array_u32(xe__, map__, index__, val__) \
>> + xe_map_wr_array(xe__, map__, index__, u32, val__)
>> +
>> #define xe_map_rd_field(xe__, map__, struct_offset__, struct_type__, field__) ({ \
>> struct xe_device *__xe = xe__; \
>> xe_device_assert_mem_access(__xe); \
>> diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c
>> index e70f1ceabbb3..2674fa948fda 100644
>> --- a/drivers/gpu/drm/xe/xe_sriov_vf.c
>> +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c
>> @@ -10,6 +10,7 @@
>> #include "xe_gt.h"
>> #include "xe_gt_sriov_printk.h"
>> #include "xe_gt_sriov_vf.h"
>> +#include "xe_guc_ct.h"
>> #include "xe_pm.h"
>> #include "xe_sriov.h"
>> #include "xe_sriov_printk.h"
>> @@ -158,6 +159,20 @@ static int vf_post_migration_requery_guc(struct xe_device *xe)
>> return ret;
>> }
>>
>> +static void vf_post_migration_fixup_ctb(struct xe_device *xe)
>> +{
>> + struct xe_gt *gt;
>> + unsigned int id;
>> +
>> + xe_assert(xe, IS_SRIOV_VF(xe));
>> +
>> + for_each_gt(gt, xe, id) {
>> + s32 shift = xe_gt_sriov_vf_ggtt_shift(gt);
>> +
>> + xe_guc_ct_fixup_messages_with_ggtt(>->uc.guc.ct, shift);
>> + }
>> +}
>> +
>> /*
>> * vf_post_migration_imminent - Check if post-restore recovery is coming.
>> * @xe: the &xe_device struct instance
>> @@ -224,6 +239,9 @@ static void vf_post_migration_recovery(struct xe_device *xe)
>>
>> need_fixups = vf_post_migration_fixup_ggtt_nodes(xe);
>> /* FIXME: add the recovery steps */
>> + if (need_fixups)
>> + vf_post_migration_fixup_ctb(xe);
>> +
>> vf_post_migration_notify_resfix_done(xe);
>> xe_pm_runtime_put(xe);
>> drm_notice(&xe->drm, "migration recovery ended\n");
[-- Attachment #2: Type: text/html, Size: 17737 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration
2025-04-09 21:09 ` Lis, Tomasz
@ 2025-04-10 18:24 ` Michal Wajdeczko
2025-04-11 14:34 ` Lis, Tomasz
0 siblings, 1 reply; 23+ messages in thread
From: Michal Wajdeczko @ 2025-04-10 18:24 UTC (permalink / raw)
To: Lis, Tomasz, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 09.04.2025 23:09, Lis, Tomasz wrote:
>
> On 08.04.2025 16:23, Michal Wajdeczko wrote:
>> On 03.04.2025 20:40, Tomasz Lis wrote:
...
>>> + u32 msg[1];
>> u32 msg;
>> or
>> u32 msg[GUC_HXG_MSG_MIN_LEN];
> I want an array, so will go with 2nd. Though this looks like unjustified
> obfuscation to me.
using magic "1" is an obfuscation to me
....
>>> + struct guc_ctb *h2g,
>> nit: this is redundant
> oh I see. by "this" you mean a spaced out separate line.
no, I just repeat that all your fixup is about H2G and since we pass ct
each helper function can easily find pointer to h2g
passing struct guc_ctb * as separate parameter may suggest that
something other than h2g could be handled (but we don't need this)
...
>>> + /* Read header */
>> you should at least assert that avail > 0 before reading even single u32
>>
>> xe_gt_assert(gt, avail >= GUC_CTB_MSG_MIN_LEN);
> This is a static function, and the caller is ensuring that. But sure, I
> can add the assert.
>> but since it is called in the loop, more appropriate would be:
>>
>> if (avail < GUC_CTB_MSG_MIN_LEN)
>> goto broken;
>
> I don't know what you mean by that. There are not that many
> possibilities for an integer value greater than 0 but smaller than 1.
caller just checks for avail > 0
but we shall check for avail >= GUC_CTB_MSG_MIN_LEN
and we should not make any assumptions about GUC_CTB_MSG_MIN_LEN value
>
> And by the changes I agreed to above and below, we've already ensured
> that GUC_CTB_MSG_MIN_LEN can only be equal to 1.
we are adding checks for 'avail'
we are not making new assumptions about ABI values
...
>> maybe it's time to introduce
>>
>> u32 move_head(u32 head, u32 step, u32 size)
> We are overdefining a lot of things already. I don't think we should
> press even harder in that direction.
it's about avoiding duplicated code and wrap it into named helper
...
>>> +
>>> +/**
>>> + * xe_guc_ct_fixup_messages_with_ggtt - Fixup any pending H2G CTB
>>> messages
>>> + * @ct: pointer to CT struct of the target GuC
>>> + * @ggtt_shift: shift to be added to all GGTT addresses within the CTB
>>> + *
>>> + * Messages in guc-to-host CTB are owned by GuC and any fixups in them
>>> + * are made by GuC. But content of the host-to-guc CTB is owned by the
>>> + * KMD, so fixups to GGTT references in any pending messages need to be
>>> + * applied here.
>> s/guc-to-host/H2G
>>
>> like you have earlier and below
> Earlier is a short description. Below I am using shortcut after defining
> it in this line. This is how the long comments should look like,
> abbreviations should be defined.
but I guess you should be aware right now that your code is not the
first that introduces the CTB feature, including G2H and H2G concept and
naming, so really above kernel-doc is not a right place to suddenly use
"guc-to-host" term (which is a bad notation anyway)
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration
2025-04-10 18:24 ` Michal Wajdeczko
@ 2025-04-11 14:34 ` Lis, Tomasz
0 siblings, 0 replies; 23+ messages in thread
From: Lis, Tomasz @ 2025-04-11 14:34 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe
Cc: Michał Winiarski, Piotr Piórkowski, Matthew Brost,
Lucas De Marchi
On 10.04.2025 20:24, Michal Wajdeczko wrote:
> On 09.04.2025 23:09, Lis, Tomasz wrote:
>> On 08.04.2025 16:23, Michal Wajdeczko wrote:
>>> On 03.04.2025 20:40, Tomasz Lis wrote:
> ...
>
>>>> + u32 msg[1];
>>> u32 msg;
>>> or
>>> u32 msg[GUC_HXG_MSG_MIN_LEN];
>> I want an array, so will go with 2nd. Though this looks like unjustified
>> obfuscation to me.
> using magic "1" is an obfuscation to me
It's not magic, the array has one entry because only one entry is used
later.
Naming it something which one could theorize is any value, obfuscates
the real value of "1".
It makes no sense to think of this value as some "min length".
So maybe I used a wrong term - this is not just obfuscation, this is
misinformation.
> ....
>
>>>> + struct guc_ctb *h2g,
>>> nit: this is redundant
>> oh I see. by "this" you mean a spaced out separate line.
> no, I just repeat that all your fixup is about H2G and since we pass ct
> each helper function can easily find pointer to h2g
>
> passing struct guc_ctb * as separate parameter may suggest that
> something other than h2g could be handled (but we don't need this)
From the other comments, it would seem you think it is important for
the code to correspond to the idea, or mindset, behind it.
The idea behind this function is to fix a message in specific `guc_ctb`.
Why do we want to hide this idea by optimizing out a parameter in this
specific case, but we're adding incorrect parameters (meaning ones that
are not used directly, need to be converted to another object)
everywhere else? What is the difference?
> ...
>
>>>> + /* Read header */
>>> you should at least assert that avail > 0 before reading even single u32
>>>
>>> xe_gt_assert(gt, avail >= GUC_CTB_MSG_MIN_LEN);
>> This is a static function, and the caller is ensuring that. But sure, I
>> can add the assert.
>>> but since it is called in the loop, more appropriate would be:
>>>
>>> if (avail < GUC_CTB_MSG_MIN_LEN)
>>> goto broken;
>> I don't know what you mean by that. There are not that many
>> possibilities for an integer value greater than 0 but smaller than 1.
> caller just checks for avail > 0
> but we shall check for avail >= GUC_CTB_MSG_MIN_LEN
>
> and we should not make any assumptions about GUC_CTB_MSG_MIN_LEN value
In this round I finally agreed to the changes which removed any size
read (xe_map_memcpy_from) and replaced that with one dword read
(xe_map_rd_array_u32).
We are now making assumptions about GUC_CTB_MSG_MIN_LEN. The only
supported value is 1.
And even if it wasn't the case, the value is and always will be 1. We
are creating false narrative around the simple value of 1. It is just 1
and can't be anything else. Change to that would require a rewrite, but
it's not even worth considering as that will never happen.
"avail > 0" and "avail >= 1" are equivalent.
>> And by the changes I agreed to above and below, we've already ensured
>> that GUC_CTB_MSG_MIN_LEN can only be equal to 1.
> we are adding checks for 'avail'
> we are not making new assumptions about ABI values
>
> ...
>
>>> maybe it's time to introduce
>>>
>>> u32 move_head(u32 head, u32 step, u32 size)
>> We are overdefining a lot of things already. I don't think we should
>> press even harder in that direction.
> it's about avoiding duplicated code and wrap it into named helper
This is why we introduce helpers, true. But now we're starting to do
this for trivial stuff.
Every programmer understands these:
head = (head + GUC_CTB_MSG_MIN_LEN) % size;
*mhead = (head + msg_len_to_hxg_len(len)) % size;
This is trivial. The lines are self explanatory. Making a sub-function
to hide that isn't providing any benefit, It's harmful, as it requires
the reader to check the sub-function instead of seeing plainly and
directly what's being done. It also leads to more lines of code.
> ...
>
>>>> +
>>>> +/**
>>>> + * xe_guc_ct_fixup_messages_with_ggtt - Fixup any pending H2G CTB
>>>> messages
>>>> + * @ct: pointer to CT struct of the target GuC
>>>> + * @ggtt_shift: shift to be added to all GGTT addresses within the CTB
>>>> + *
>>>> + * Messages in guc-to-host CTB are owned by GuC and any fixups in them
>>>> + * are made by GuC. But content of the host-to-guc CTB is owned by the
>>>> + * KMD, so fixups to GGTT references in any pending messages need to be
>>>> + * applied here.
>>> s/guc-to-host/H2G
>>>
>>> like you have earlier and below
>> Earlier is a short description. Below I am using shortcut after defining
>> it in this line. This is how the long comments should look like,
>> abbreviations should be defined.
> but I guess you should be aware right now that your code is not the
> first that introduces the CTB feature, including G2H and H2G concept and
> naming,
ok, interesting argument. I didn't know we have the concept of "first"
introduction which defines abbreviations.
Where is it? I see two candidates:
1. ./drivers/gpu/drm/xe/xe_guc_ct_types.h: /** @ctbs.recv: GuC to
Host (G2H, receive) channel */
This one is a part of struct declaration, so it clearly isn't the first,
right?
2. /drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h: * Each MMIO
based message, both Host to GuC (H2G) and GuC to Host (G2H)
This one is in MMIO specific file. And we're discussing a comment to a
CTB-related function. So.. not this one?
Where is that "first" introduction which defined it? What rule do we
have here as a general concept, one expansion per driver is enough? Or
one expansion per file? One per feature?
Or.. is it all just arbitrary. We have no rules. In which case this
place is in no way worse than any other. Maybe every full description
should expand it.
> so really above kernel-doc is not a right place to suddenly use
> "guc-to-host" term (which is a bad notation anyway)
Right, in the two other places the notation is different.
To be honest I'm not really against using a shortcut here, I just do not
understand the argumentation in this review comment.
With the justification provided, I'd consider this as below the
threshold of things worth commenting in a review.
-Tomasz
>
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2025-04-11 14:34 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-03 18:40 [PATCH v7 0/4] drm/xe/vf: Post-migration recovery of GGTT nodes and CTB Tomasz Lis
2025-04-03 18:40 ` [PATCH v7 1/4] drm/xe/vf: Divide GGTT ballooning into allocation and insertion Tomasz Lis
2025-04-08 11:59 ` Michal Wajdeczko
2025-04-09 20:58 ` Lis, Tomasz
2025-04-03 18:40 ` [PATCH v7 2/4] drm/xe/vf: Shifting GGTT area post migration Tomasz Lis
2025-04-08 13:23 ` Michal Wajdeczko
2025-04-09 21:03 ` Lis, Tomasz
2025-04-03 18:40 ` [PATCH v7 3/4] drm/xe/guc: Introduce enum with offsets for context register H2Gs Tomasz Lis
2025-04-08 13:34 ` Michal Wajdeczko
2025-04-09 21:04 ` Lis, Tomasz
2025-04-03 18:40 ` [PATCH v7 4/4] drm/xe/vf: Fixup CTB send buffer messages after migration Tomasz Lis
2025-04-08 14:23 ` Michal Wajdeczko
2025-04-09 21:09 ` Lis, Tomasz
2025-04-10 18:24 ` Michal Wajdeczko
2025-04-11 14:34 ` Lis, Tomasz
2025-04-04 0:22 ` ✓ CI.Patch_applied: success for drm/xe/vf: Post-migration recovery of GGTT nodes and CTB (rev6) Patchwork
2025-04-04 0:23 ` ✗ CI.checkpatch: warning " Patchwork
2025-04-04 0:24 ` ✓ CI.KUnit: success " Patchwork
2025-04-04 0:40 ` ✓ CI.Build: " Patchwork
2025-04-04 0:43 ` ✓ CI.Hooks: " Patchwork
2025-04-04 0:44 ` ✓ CI.checksparse: " Patchwork
2025-04-04 1:29 ` ✗ Xe.CI.BAT: failure " Patchwork
2025-04-04 10:12 ` ✓ Xe.CI.Full: success " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox