* [PATCH v4 0/3] VF double migration
@ 2025-11-18 11:41 Satyanarayana K V P
2025-11-18 11:41 ` [PATCH v4 1/3] drm/xe/vf: Enable VF migration only on supported GUC versions Satyanarayana K V P
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Satyanarayana K V P @ 2025-11-18 11:41 UTC (permalink / raw)
To: intel-xe; +Cc: Satyanarayana K V P
In scenarios involving double migration, the VF KMD may encounter
situations where it is instructed to re-migrate before having the
opportunity to send RESFIX_DONE for the initial migration. This can occur
when the fix-up for the prior migration is still underway, but the VF KMD
is migrated again.
Consequently, this may lead to the possibility of sending two migration
notifications (i.e., pending fix-up for the first migration and a second
notification for the new migration). Upon receiving the first RES_FIX
notification, the GuC will resume VF submission on the GPU, potentially
resulting in undefined behavior, such as system hangs or crashes.
To avoid these hangs, a new VF2GUC action `VF2GUC_NOTIFY_RESFIX_START` is
sent along with marker and when GUC receives the same marker with
`VF2GUC_NOTIFY_RESFIX_DONE`action, it starts scheduling work loads from VF.
---
V3 -> V4:
- Gated Save/restore on Guc version 70.54.0
- Enabled RESFIX_START by default.
- Updated RESFIX_DONE documention.
V2 -> V3:
- Fixed review comments (Michal W).
- Updated commit message.
- Fixed CI.BAT issues.
- Added helper function to assert on unsupported GUC versions.
- Added debugfs entries to test VF double migration.
V1 -> V2:
- Squashed "Enable RESFIX start marker only on supported GUC
versions" commit into a single commit. (Matt B)
- Use fault injection for testing VF double migration feature (Matt B).
Satyanarayana K V P (3):
drm/xe/vf: Enable VF migration only on supported GUC versions
drm/xe/vf: Introduce RESFIX start marker support
drm/xe/vf: Add debugfs entries to test VF double migration
.../gpu/drm/xe/abi/guc_actions_sriov_abi.h | 60 ++++++++++--
drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 93 +++++++++++++++----
drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c | 5 +
drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 13 +++
drivers/gpu/drm/xe/xe_sriov_vf.c | 28 +++++-
5 files changed, 169 insertions(+), 30 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v4 1/3] drm/xe/vf: Enable VF migration only on supported GUC versions 2025-11-18 11:41 [PATCH v4 0/3] VF double migration Satyanarayana K V P @ 2025-11-18 11:41 ` Satyanarayana K V P 2025-11-19 14:47 ` Michal Wajdeczko 2025-11-18 11:41 ` [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support Satyanarayana K V P ` (4 subsequent siblings) 5 siblings, 1 reply; 13+ messages in thread From: Satyanarayana K V P @ 2025-11-18 11:41 UTC (permalink / raw) To: intel-xe; +Cc: Satyanarayana K V P, Michal Wajdeczko, Matthew Brost, Tomasz Lis Enable VF migration starting with GUC 70.54.0 (compatibility version 1.27.0). Gate the feature on the GuC firmware version and keep it disabled on older or unsupported versions. Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Matthew Brost <matthew.brost@intel.com> Cc: Tomasz Lis <tomasz.lis@intel.com> --- V3 -> V4: - New commit V2 -> V3: - None. V1 -> V2: - None. --- drivers/gpu/drm/xe/xe_sriov_vf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c index 284ce37ca92d..b73498097df5 100644 --- a/drivers/gpu/drm/xe/xe_sriov_vf.c +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c @@ -180,6 +180,18 @@ void xe_sriov_vf_init_early(struct xe_device *xe) */ int xe_sriov_vf_init_late(struct xe_device *xe) { + struct xe_gt *gt = xe_root_mmio_gt(xe); + struct xe_uc_fw_version guc_version; + + xe_gt_sriov_vf_guc_versions(gt, NULL, &guc_version); + if (MAKE_GUC_VER_STRUCT(guc_version) < MAKE_GUC_VER(1, 27, 0)) { + xe_sriov_vf_migration_disable(xe, + "requires GUC ABI >= 1.27.0, but only %u.%u.%u found", + guc_version.major, guc_version.minor, + guc_version.patch); + return 0; + } + return xe_sriov_vf_ccs_init(xe); } -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v4 1/3] drm/xe/vf: Enable VF migration only on supported GUC versions 2025-11-18 11:41 ` [PATCH v4 1/3] drm/xe/vf: Enable VF migration only on supported GUC versions Satyanarayana K V P @ 2025-11-19 14:47 ` Michal Wajdeczko 0 siblings, 0 replies; 13+ messages in thread From: Michal Wajdeczko @ 2025-11-19 14:47 UTC (permalink / raw) To: Satyanarayana K V P, intel-xe; +Cc: Matthew Brost, Tomasz Lis On 11/18/2025 12:41 PM, Satyanarayana K V P wrote: > Enable VF migration starting with GUC 70.54.0 (compatibility version > 1.27.0). Gate the feature on the GuC firmware version and keep it disabled > on older or unsupported versions. hmm, do we need this second sentence? and please use "GuC" naming everywhere > > Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> > Cc: Matthew Brost <matthew.brost@intel.com> > Cc: Tomasz Lis <tomasz.lis@intel.com> > > --- > V3 -> V4: > - New commit > > V2 -> V3: > - None. > > V1 -> V2: > - None. > --- > drivers/gpu/drm/xe/xe_sriov_vf.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c > index 284ce37ca92d..b73498097df5 100644 > --- a/drivers/gpu/drm/xe/xe_sriov_vf.c > +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c > @@ -180,6 +180,18 @@ void xe_sriov_vf_init_early(struct xe_device *xe) > */ > int xe_sriov_vf_init_late(struct xe_device *xe) > { > + struct xe_gt *gt = xe_root_mmio_gt(xe); > + struct xe_uc_fw_version guc_version; > + > + xe_gt_sriov_vf_guc_versions(gt, NULL, &guc_version); > + if (MAKE_GUC_VER_STRUCT(guc_version) < MAKE_GUC_VER(1, 27, 0)) { > + xe_sriov_vf_migration_disable(xe, > + "requires GUC ABI >= 1.27.0, but only %u.%u.%u found", > + guc_version.major, guc_version.minor, > + guc_version.patch); > + return 0; > + } and move this code to the vf_migration_init_late() helper, like we did in xe_sriov_vf_init_early() and vf_migration_init_early() > + > return xe_sriov_vf_ccs_init(xe); > } > ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support 2025-11-18 11:41 [PATCH v4 0/3] VF double migration Satyanarayana K V P 2025-11-18 11:41 ` [PATCH v4 1/3] drm/xe/vf: Enable VF migration only on supported GUC versions Satyanarayana K V P @ 2025-11-18 11:41 ` Satyanarayana K V P 2025-11-19 17:24 ` Michal Wajdeczko 2025-11-18 11:41 ` [PATCH v4 3/3] drm/xe/vf: Add debugfs entries to test VF double migration Satyanarayana K V P ` (3 subsequent siblings) 5 siblings, 1 reply; 13+ messages in thread From: Satyanarayana K V P @ 2025-11-18 11:41 UTC (permalink / raw) To: intel-xe; +Cc: Satyanarayana K V P, Michal Wajdeczko, Matthew Brost, Tomasz Lis In scenarios involving double migration, the VF KMD may encounter situations where it is instructed to re-migrate before having the opportunity to send RESFIX_DONE for the initial migration. This can occur when the fix-up for the prior migration is still underway, but the VF KMD is migrated again. Consequently, this may lead to the possibility of sending two migration notifications (i.e., pending fix-up for the first migration and a second notification for the new migration). Upon receiving the first RES_FIX notification, the GuC will resume VF submission on the GPU, potentially resulting in undefined behavior, such as system hangs or crashes. To avoid this, post migration, a marker is sent to the GUC prior to the start of resource fixups to indicate start of resource fixups. The same marker is sent along with RESFIX_DONE notification so that GUC can avoid submitting jobs to HW in case of double migration. Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Matthew Brost <matthew.brost@intel.com> Cc: Tomasz Lis <tomasz.lis@intel.com> --- V3 -> V4: - Updated RESFIX_DONE action name and documenation part. (Michal W) - Enable resfxi_start marked by default as sav/restore is gated on Guc version 70.54.0 V2 -> V3: - Fixed review comments (Michal W). - Updated commit message. - Fixed CI.BAT issues. - Added helper function to assert on unsupported GUC versions. - Updated RESFIX_DONE action name and documenation part. V1 -> V2: - Squashed "Enable RESFIX start marker only on supported GUC versions" commit into a single commit. (Matt B) --- .../gpu/drm/xe/abi/guc_actions_sriov_abi.h | 60 +++++++++++--- drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 80 ++++++++++++++----- drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 5 ++ drivers/gpu/drm/xe/xe_sriov_vf.c | 16 +++- 4 files changed, 131 insertions(+), 30 deletions(-) diff --git a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h index 0b28659d94e9..1d84ce07b201 100644 --- a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h +++ b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h @@ -502,13 +502,15 @@ #define VF2GUC_VF_RESET_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 /** - * DOC: VF2GUC_NOTIFY_RESFIX_DONE + * DOC: VF2GUC_RESFIX_DONE * - * This action is used by VF to notify the GuC that the VF KMD has completed + * This action is used by VF to inform the GuC that the VF KMD has completed * post-migration recovery steps. * * This message must be sent as `MMIO HXG Message`_. * + * Available since GuC VF compatibility 1.27.0. + * * +---+-------+--------------------------------------------------------------+ * | | Bits | Description | * +===+=======+==============================================================+ @@ -516,9 +518,9 @@ * | +-------+--------------------------------------------------------------+ * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | * | +-------+--------------------------------------------------------------+ - * | | 27:16 | DATA0 = MBZ | + * | | 27:16 | DATA0 = MARKER - can't be zero | * | +-------+--------------------------------------------------------------+ - * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE` = 0x5508 | + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_DONE` = 0x5508 | * +---+-------+--------------------------------------------------------------+ * * +---+-------+--------------------------------------------------------------+ @@ -531,13 +533,13 @@ * | | 27:0 | DATA0 = MBZ | * +---+-------+--------------------------------------------------------------+ */ -#define GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE 0x5508u +#define GUC_ACTION_VF2GUC_RESFIX_DONE 0x5508u -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0 +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 /** * DOC: VF2GUC_QUERY_SINGLE_KLV @@ -656,4 +658,44 @@ #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_0_USED GUC_HXG_RESPONSE_MSG_0_DATA0 +/** + * DOC: VF2GUC_RESFIX_START + * + * This action is used by VF to inform the GuC that the VF KMD will be starting + * post-migration recovery fixups. + * + * This message must be sent as `MMIO HXG Message`_. + * + * Available since GuC VF compatibility 1.27.0. + * + * +---+-------+--------------------------------------------------------------+ + * | | Bits | Description | + * +===+=======+==============================================================+ + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ | + * | +-------+--------------------------------------------------------------+ + * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | + * | +-------+--------------------------------------------------------------+ + * | | 27:16 | DATA0 = MARKER - can't be zero | + * | +-------+--------------------------------------------------------------+ + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_START` = 0x550F | + * +---+-------+--------------------------------------------------------------+ + * + * +---+-------+--------------------------------------------------------------+ + * | | Bits | Description | + * +===+=======+==============================================================+ + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ | + * | +-------+--------------------------------------------------------------+ + * | | 30:28 | TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_ | + * | +-------+--------------------------------------------------------------+ + * | | 27:0 | DATA0 = MBZ | + * +---+-------+--------------------------------------------------------------+ + */ +#define GUC_ACTION_VF2GUC_RESFIX_START 0x550Fu + +#define VF2GUC_RESFIX_START_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN +#define VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 + +#define VF2GUC_RESFIX_START_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN +#define VF2GUC_RESFIX_START_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 + #endif diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c index 4c73a077d314..08c00b773a13 100644 --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c @@ -299,12 +299,13 @@ void xe_gt_sriov_vf_guc_versions(struct xe_gt *gt, *found = gt->sriov.vf.guc_version; } -static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) +static int guc_action_vf_notify_resfix_start(struct xe_guc *guc, u16 marker) { u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | - FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE), + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_START) | + FIELD_PREP(VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER, marker), }; int ret; @@ -313,30 +314,54 @@ static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) return ret > 0 ? -EPROTO : ret; } -/** - * vf_notify_resfix_done - Notify GuC about resource fixups apply completed. - * @gt: the &xe_gt struct instance linked to target GuC - * - * Returns: 0 if the operation completed successfully, or a negative error - * code otherwise. - */ -static int vf_notify_resfix_done(struct xe_gt *gt) +static int vf_notify_resfix_start(struct xe_gt *gt, u16 marker) { struct xe_guc *guc = >->uc.guc; int err; xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); - err = guc_action_vf_notify_resfix_done(guc); + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix start marker %u\n", marker); + + err = guc_action_vf_notify_resfix_start(guc, marker); if (unlikely(err)) - xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup start(%pe)\n", ERR_PTR(err)); - else - xe_gt_sriov_dbg_verbose(gt, "sent GuC resource fixup done\n"); return err; } +static int guc_action_vf_notify_resfix_done(struct xe_guc *guc, u16 marker) +{ + u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { + FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | + FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_DONE) | + FIELD_PREP(VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER, marker), + }; + int ret; + + ret = xe_guc_mmio_send(guc, request, ARRAY_SIZE(request)); + + return ret > 0 ? -EPROTO : ret; +} + +static int vf_notify_resfix_done(struct xe_gt *gt, u16 marker) +{ + struct xe_guc *guc = >->uc.guc; + int err; + + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); + + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix done marker %u\n", marker); + + err = guc_action_vf_notify_resfix_done(guc, marker); + if (unlikely(err)) + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", + ERR_PTR(err)); + return err; +} + static int guc_action_query_single_klv(struct xe_guc *guc, u32 key, u32 *value, u32 value_len) { @@ -1183,7 +1208,7 @@ static void vf_post_migration_abort(struct xe_gt *gt) xe_guc_submit_pause_abort(>->uc.guc); } -static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) +static int vf_post_migration_notify_resfix_done(struct xe_gt *gt, u16 marker) { bool skip_resfix = false; @@ -1206,14 +1231,21 @@ static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) */ xe_irq_resume(gt_to_xe(gt)); - return vf_notify_resfix_done(gt); + return vf_notify_resfix_done(gt, marker); +} + +static u16 vf_post_migration_resfix_start_marker(struct xe_gt *gt) +{ + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); + return ++gt->sriov.vf.migration.resfix_marker; } static void vf_post_migration_recovery(struct xe_gt *gt) { struct xe_device *xe = gt_to_xe(gt); - int err; + u16 marker; bool retry; + int err; xe_gt_sriov_dbg(gt, "migration recovery in progress\n"); @@ -1227,13 +1259,25 @@ static void vf_post_migration_recovery(struct xe_gt *gt) goto fail; } + /* + * Increment the startup marker again if it overflows, since GUC + * requires a non-zero marker to be set. + */ + marker = vf_post_migration_resfix_start_marker(gt); + if (!marker) + marker = vf_post_migration_resfix_start_marker(gt); + + err = vf_notify_resfix_start(gt, marker); + if (err) + goto fail; + err = vf_post_migration_fixups(gt); if (err) goto fail; vf_post_migration_rearm(gt); - err = vf_post_migration_notify_resfix_done(gt); + err = vf_post_migration_notify_resfix_done(gt, marker); if (err && err != -EAGAIN) goto fail; 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 420b0e6089de..66c0062a42c6 100644 --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h @@ -52,6 +52,11 @@ struct xe_gt_sriov_vf_migration { wait_queue_head_t wq; /** @scratch: Scratch memory for VF recovery */ void *scratch; + /** + * @resfix_marker: Marker sent on start and on end of post-migration + * steps. + */ + u16 resfix_marker; /** @recovery_teardown: VF post migration recovery is being torn down */ bool recovery_teardown; /** @recovery_queued: VF post migration recovery in queued */ diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c index b73498097df5..64b2ddabd3f9 100644 --- a/drivers/gpu/drm/xe/xe_sriov_vf.c +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c @@ -49,11 +49,13 @@ * * As soon as Virtual GPU of the VM starts, the VF driver within receives * the MIGRATED interrupt and schedules post-migration recovery worker. - * That worker queries GuC for new provisioning (using MMIO communication), + * That worker sends `VF2GUC_NOTIFY_RESFIX_START` action along with non-zero + * marker, queries GuC for new provisioning (using MMIO communication), * and applies fixups to any non-virtualized resources used by the VF. * * When the VF driver is ready to continue operation on the newly connected - * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` which causes it to + * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` action along with the same + * marker which was sent with `VF2GUC_NOTIFY_RESFIX_START` which causes it to * enter the long awaited `VF_RUNNING` state, and therefore start handling * CTB messages and scheduling workloads from the VF:: * @@ -102,6 +104,11 @@ * | [ ] new VF provisioning [ ] * | [ ]---------------------------> [ ] * | | [ ] + * | | VF2GUC_NOTIFY_RESFIX_START [ ] + * | [ ] <---------------------------[ ] + * | [ ] [ ] + * | [ ] success [ ] + * | [ ]---------------------------> [ ] * | | VF driver applies post [ ] * | | migration fixups -------[ ] * | | | [ ] @@ -114,7 +121,10 @@ * | [ ]------- VF_RUNNING [ ] * | [ ] | [ ] * | [ ] <----- [ ] - * | [ ] success [ ] + * | [ ] success (on marker match) [ ] + * | [ ]---------------------------> [ ] + * | [ ] error (on marker match) [ ] + * | [ ] ERROR_RESFIX_MARKER_MISMATCH[ ] * | [ ]---------------------------> [ ] * | | | * | | | -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support 2025-11-18 11:41 ` [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support Satyanarayana K V P @ 2025-11-19 17:24 ` Michal Wajdeczko 2025-11-19 17:38 ` Matthew Brost 0 siblings, 1 reply; 13+ messages in thread From: Michal Wajdeczko @ 2025-11-19 17:24 UTC (permalink / raw) To: Satyanarayana K V P, intel-xe; +Cc: Matthew Brost, Tomasz Lis On 11/18/2025 12:41 PM, Satyanarayana K V P wrote: > In scenarios involving double migration, the VF KMD may encounter > situations where it is instructed to re-migrate before having the > opportunity to send RESFIX_DONE for the initial migration. This can occur > when the fix-up for the prior migration is still underway, but the VF KMD > is migrated again. > > Consequently, this may lead to the possibility of sending two migration > notifications (i.e., pending fix-up for the first migration and a second > notification for the new migration). Upon receiving the first RES_FIX > notification, the GuC will resume VF submission on the GPU, potentially > resulting in undefined behavior, such as system hangs or crashes. > > To avoid this, post migration, a marker is sent to the GUC prior to the > start of resource fixups to indicate start of resource fixups. The same > marker is sent along with RESFIX_DONE notification so that GUC can avoid > submitting jobs to HW in case of double migration. > > Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> > Cc: Matthew Brost <matthew.brost@intel.com> > Cc: Tomasz Lis <tomasz.lis@intel.com> > > --- > V3 -> V4: > - Updated RESFIX_DONE action name and documenation part. (Michal W) > - Enable resfxi_start marked by default as sav/restore is gated on > Guc version 70.54.0 > > V2 -> V3: > - Fixed review comments (Michal W). > - Updated commit message. > - Fixed CI.BAT issues. > - Added helper function to assert on unsupported GUC versions. > - Updated RESFIX_DONE action name and documenation part. > > V1 -> V2: > - Squashed "Enable RESFIX start marker only on supported GUC > versions" commit into a single commit. (Matt B) > --- > .../gpu/drm/xe/abi/guc_actions_sriov_abi.h | 60 +++++++++++--- > drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 80 ++++++++++++++----- > drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 5 ++ > drivers/gpu/drm/xe/xe_sriov_vf.c | 16 +++- > 4 files changed, 131 insertions(+), 30 deletions(-) > > diff --git a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h > index 0b28659d94e9..1d84ce07b201 100644 > --- a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h > +++ b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h > @@ -502,13 +502,15 @@ > #define VF2GUC_VF_RESET_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > > /** > - * DOC: VF2GUC_NOTIFY_RESFIX_DONE > + * DOC: VF2GUC_RESFIX_DONE > * > - * This action is used by VF to notify the GuC that the VF KMD has completed > + * This action is used by VF to inform the GuC that the VF KMD has completed > * post-migration recovery steps. please mention that from 1.27 it shall only be sent after posting RESFIX_START and that both @MARKER fields must match > * > * This message must be sent as `MMIO HXG Message`_. > * > + * Available since GuC VF compatibility 1.27.0. hmm, actually RESFIX_DONE is also available prior 1.27, just a meaning of the DATA0 has changed maybe: * Updated since GuC VF compatibility 1.27.0. > + * > * +---+-------+--------------------------------------------------------------+ > * | | Bits | Description | > * +===+=======+==============================================================+ > @@ -516,9 +518,9 @@ > * | +-------+--------------------------------------------------------------+ > * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | > * | +-------+--------------------------------------------------------------+ > - * | | 27:16 | DATA0 = MBZ | > + * | | 27:16 | DATA0 = MARKER - can't be zero | and then we can keep legacy definition for the record: * | +-------+--------------------------------------------------------------+ - * | | 27:16 | DATA0 = MBZ | + * | | 27:16 | DATA0 = MARKER = MBZ (only prior 1.27.0) | * | +-------+--------------------------------------------------------------+ + * | | 27:16 | DATA0 = MARKER - can't be zero (1.27.0+) | + * | +-------+--------------------------------------------------------------+ > * | +-------+--------------------------------------------------------------+ > - * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE` = 0x5508 | > + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_DONE` = 0x5508 | > * +---+-------+--------------------------------------------------------------+ > * > * +---+-------+--------------------------------------------------------------+ > @@ -531,13 +533,13 @@ > * | | 27:0 | DATA0 = MBZ | > * +---+-------+--------------------------------------------------------------+ > */ > -#define GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE 0x5508u > +#define GUC_ACTION_VF2GUC_RESFIX_DONE 0x5508u > > -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN > -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0 > +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN > +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 > > -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > > /** > * DOC: VF2GUC_QUERY_SINGLE_KLV > @@ -656,4 +658,44 @@ > #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_0_USED GUC_HXG_RESPONSE_MSG_0_DATA0 > > +/** > + * DOC: VF2GUC_RESFIX_START > + * > + * This action is used by VF to inform the GuC that the VF KMD will be starting > + * post-migration recovery fixups. please mention that @MARKER sent here must later match the MARKER posted in the VF2GUC_RESFIX_DONE_ message > + * > + * This message must be sent as `MMIO HXG Message`_. > + * > + * Available since GuC VF compatibility 1.27.0. > + * > + * +---+-------+--------------------------------------------------------------+ > + * | | Bits | Description | > + * +===+=======+==============================================================+ > + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ | > + * | +-------+--------------------------------------------------------------+ > + * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | > + * | +-------+--------------------------------------------------------------+ > + * | | 27:16 | DATA0 = MARKER - can't be zero | > + * | +-------+--------------------------------------------------------------+ > + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_START` = 0x550F | > + * +---+-------+--------------------------------------------------------------+ > + * > + * +---+-------+--------------------------------------------------------------+ > + * | | Bits | Description | > + * +===+=======+==============================================================+ > + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ | > + * | +-------+--------------------------------------------------------------+ > + * | | 30:28 | TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_ | > + * | +-------+--------------------------------------------------------------+ > + * | | 27:0 | DATA0 = MBZ | > + * +---+-------+--------------------------------------------------------------+ > + */ > +#define GUC_ACTION_VF2GUC_RESFIX_START 0x550Fu > + > +#define VF2GUC_RESFIX_START_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN > +#define VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 > + > +#define VF2GUC_RESFIX_START_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > +#define VF2GUC_RESFIX_START_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > + > #endif > diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > index 4c73a077d314..08c00b773a13 100644 > --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > @@ -299,12 +299,13 @@ void xe_gt_sriov_vf_guc_versions(struct xe_gt *gt, > *found = gt->sriov.vf.guc_version; > } > > -static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) > +static int guc_action_vf_notify_resfix_start(struct xe_guc *guc, u16 marker) > { > u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { > FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | > FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | > - FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE), > + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_START) | > + FIELD_PREP(VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER, marker), > }; > int ret; > > @@ -313,30 +314,54 @@ static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) > return ret > 0 ? -EPROTO : ret; > } > > -/** > - * vf_notify_resfix_done - Notify GuC about resource fixups apply completed. > - * @gt: the &xe_gt struct instance linked to target GuC > - * > - * Returns: 0 if the operation completed successfully, or a negative error > - * code otherwise. > - */ > -static int vf_notify_resfix_done(struct xe_gt *gt) > +static int vf_notify_resfix_start(struct xe_gt *gt, u16 marker) > { > struct xe_guc *guc = >->uc.guc; > int err; > > xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); > > - err = guc_action_vf_notify_resfix_done(guc); > + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix start marker %u\n", marker); shouldn't this be xe_gt_sriov_dbg_verbose() instead? > + > + err = guc_action_vf_notify_resfix_start(guc, marker); > if (unlikely(err)) > - xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", > + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup start(%pe)\n", add space between "start" and "(%pe)" > ERR_PTR(err)); > - else > - xe_gt_sriov_dbg_verbose(gt, "sent GuC resource fixup done\n"); > > return err; > } > > +static int guc_action_vf_notify_resfix_done(struct xe_guc *guc, u16 marker) > +{ > + u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { > + FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | > + FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | > + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_DONE) | > + FIELD_PREP(VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER, marker), > + }; > + int ret; > + > + ret = xe_guc_mmio_send(guc, request, ARRAY_SIZE(request)); > + > + return ret > 0 ? -EPROTO : ret; > +} > + > +static int vf_notify_resfix_done(struct xe_gt *gt, u16 marker) > +{ > + struct xe_guc *guc = >->uc.guc; > + int err; > + > + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); > + > + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix done marker %u\n", marker); dbg_verbose ? > + > + err = guc_action_vf_notify_resfix_done(guc, marker); > + if (unlikely(err)) > + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", hmm, it's not only about that _we_ failed, it could be that _GuC_ encountered some errors, as there is ERROR_RESFIX_FAILED, so maybe: "Recovery failed at GuC FIXUP_DONE step (%pe)" > + ERR_PTR(err)); > + return err; > +} > + > static int guc_action_query_single_klv(struct xe_guc *guc, u32 key, > u32 *value, u32 value_len) > { > @@ -1183,7 +1208,7 @@ static void vf_post_migration_abort(struct xe_gt *gt) > xe_guc_submit_pause_abort(>->uc.guc); > } > > -static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) > +static int vf_post_migration_notify_resfix_done(struct xe_gt *gt, u16 marker) > { > bool skip_resfix = false; > > @@ -1206,14 +1231,21 @@ static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) > */ > xe_irq_resume(gt_to_xe(gt)); > > - return vf_notify_resfix_done(gt); > + return vf_notify_resfix_done(gt, marker); > +} > + > +static u16 vf_post_migration_resfix_start_marker(struct xe_gt *gt) > +{ > + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); > + return ++gt->sriov.vf.migration.resfix_marker; should we protect that with lock? also see below > } > > static void vf_post_migration_recovery(struct xe_gt *gt) > { > struct xe_device *xe = gt_to_xe(gt); > - int err; > + u16 marker; > bool retry; > + int err; > > xe_gt_sriov_dbg(gt, "migration recovery in progress\n"); > > @@ -1227,13 +1259,25 @@ static void vf_post_migration_recovery(struct xe_gt *gt) > goto fail; > } > > + /* > + * Increment the startup marker again if it overflows, since GUC > + * requires a non-zero marker to be set. > + */ > + marker = vf_post_migration_resfix_start_marker(gt); > + if (!marker) > + marker = vf_post_migration_resfix_start_marker(gt); this "overflow" logic shall be in vf_post_migration_resfix_start_marker() OTOH by looking at the expected flow, maybe we don't need to track this marker at all, as it should be sufficient to always pass the same const non-zero value, GuC will just compare it with 0 anyway and we send RESFIX_START/DONE only from within this worker, so we will never have two parallel recovery sequences which would warrant different markers > + > + err = vf_notify_resfix_start(gt, marker); > + if (err) > + goto fail; > + > err = vf_post_migration_fixups(gt); > if (err) > goto fail; > > vf_post_migration_rearm(gt); > > - err = vf_post_migration_notify_resfix_done(gt); > + err = vf_post_migration_notify_resfix_done(gt, marker); > if (err && err != -EAGAIN) > goto fail; > > 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 420b0e6089de..66c0062a42c6 100644 > --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h > @@ -52,6 +52,11 @@ struct xe_gt_sriov_vf_migration { > wait_queue_head_t wq; > /** @scratch: Scratch memory for VF recovery */ > void *scratch; > + /** > + * @resfix_marker: Marker sent on start and on end of post-migration > + * steps. > + */ > + u16 resfix_marker; > /** @recovery_teardown: VF post migration recovery is being torn down */ > bool recovery_teardown; > /** @recovery_queued: VF post migration recovery in queued */ > diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c > index b73498097df5..64b2ddabd3f9 100644 > --- a/drivers/gpu/drm/xe/xe_sriov_vf.c > +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c > @@ -49,11 +49,13 @@ > * > * As soon as Virtual GPU of the VM starts, the VF driver within receives > * the MIGRATED interrupt and schedules post-migration recovery worker. > - * That worker queries GuC for new provisioning (using MMIO communication), > + * That worker sends `VF2GUC_NOTIFY_RESFIX_START` action along with non-zero drop NOTIFY tag and use trailing _ to create a link: VF2GUC_RESFIX_START_ > + * marker, queries GuC for new provisioning (using MMIO communication), > * and applies fixups to any non-virtualized resources used by the VF. > * > * When the VF driver is ready to continue operation on the newly connected > - * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` which causes it to > + * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` action along with the same > + * marker which was sent with `VF2GUC_NOTIFY_RESFIX_START` which causes it to ditto > * enter the long awaited `VF_RUNNING` state, and therefore start handling > * CTB messages and scheduling workloads from the VF:: > * > @@ -102,6 +104,11 @@ > * | [ ] new VF provisioning [ ] > * | [ ]---------------------------> [ ] > * | | [ ] > + * | | VF2GUC_NOTIFY_RESFIX_START [ ] ditto, drop NOTIFY > + * | [ ] <---------------------------[ ] > + * | [ ] [ ] > + * | [ ] success [ ] > + * | [ ]---------------------------> [ ] > * | | VF driver applies post [ ] > * | | migration fixups -------[ ] > * | | | [ ] > @@ -114,7 +121,10 @@ > * | [ ]------- VF_RUNNING [ ] > * | [ ] | [ ] > * | [ ] <----- [ ] > - * | [ ] success [ ] > + * | [ ] success (on marker match) [ ] > + * | [ ]---------------------------> [ ] > + * | [ ] error (on marker match) [ ] > + * | [ ] ERROR_RESFIX_MARKER_MISMATCH[ ] this error is about bad programming, not worth mentioning here for the double-migration case, we expect STATUS_VF_MIGRATED instead and in case of error/double migration, VF will not be moved to RUNNING state > * | [ ]---------------------------> [ ] > * | | | > * | | | ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support 2025-11-19 17:24 ` Michal Wajdeczko @ 2025-11-19 17:38 ` Matthew Brost 2025-11-20 13:33 ` K V P, Satyanarayana 0 siblings, 1 reply; 13+ messages in thread From: Matthew Brost @ 2025-11-19 17:38 UTC (permalink / raw) To: Michal Wajdeczko; +Cc: Satyanarayana K V P, intel-xe, Tomasz Lis On Wed, Nov 19, 2025 at 06:24:45PM +0100, Michal Wajdeczko wrote: > > > On 11/18/2025 12:41 PM, Satyanarayana K V P wrote: > > In scenarios involving double migration, the VF KMD may encounter > > situations where it is instructed to re-migrate before having the > > opportunity to send RESFIX_DONE for the initial migration. This can occur > > when the fix-up for the prior migration is still underway, but the VF KMD > > is migrated again. > > > > Consequently, this may lead to the possibility of sending two migration > > notifications (i.e., pending fix-up for the first migration and a second > > notification for the new migration). Upon receiving the first RES_FIX > > notification, the GuC will resume VF submission on the GPU, potentially > > resulting in undefined behavior, such as system hangs or crashes. > > > > To avoid this, post migration, a marker is sent to the GUC prior to the > > start of resource fixups to indicate start of resource fixups. The same > > marker is sent along with RESFIX_DONE notification so that GUC can avoid > > submitting jobs to HW in case of double migration. > > > > Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> > > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> > > Cc: Matthew Brost <matthew.brost@intel.com> > > Cc: Tomasz Lis <tomasz.lis@intel.com> > > > > --- > > V3 -> V4: > > - Updated RESFIX_DONE action name and documenation part. (Michal W) > > - Enable resfxi_start marked by default as sav/restore is gated on > > Guc version 70.54.0 > > > > V2 -> V3: > > - Fixed review comments (Michal W). > > - Updated commit message. > > - Fixed CI.BAT issues. > > - Added helper function to assert on unsupported GUC versions. > > - Updated RESFIX_DONE action name and documenation part. > > > > V1 -> V2: > > - Squashed "Enable RESFIX start marker only on supported GUC > > versions" commit into a single commit. (Matt B) > > --- > > .../gpu/drm/xe/abi/guc_actions_sriov_abi.h | 60 +++++++++++--- > > drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 80 ++++++++++++++----- > > drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 5 ++ > > drivers/gpu/drm/xe/xe_sriov_vf.c | 16 +++- > > 4 files changed, 131 insertions(+), 30 deletions(-) > > > > diff --git a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h > > index 0b28659d94e9..1d84ce07b201 100644 > > --- a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h > > +++ b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h > > @@ -502,13 +502,15 @@ > > #define VF2GUC_VF_RESET_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > > > > /** > > - * DOC: VF2GUC_NOTIFY_RESFIX_DONE > > + * DOC: VF2GUC_RESFIX_DONE > > * > > - * This action is used by VF to notify the GuC that the VF KMD has completed > > + * This action is used by VF to inform the GuC that the VF KMD has completed > > * post-migration recovery steps. > > please mention that from 1.27 it shall only be sent after posting RESFIX_START > and that both @MARKER fields must match > > > * > > * This message must be sent as `MMIO HXG Message`_. > > * > > + * Available since GuC VF compatibility 1.27.0. > > hmm, actually RESFIX_DONE is also available prior 1.27, > just a meaning of the DATA0 has changed > > maybe: > > * Updated since GuC VF compatibility 1.27.0. > > > + * > > * +---+-------+--------------------------------------------------------------+ > > * | | Bits | Description | > > * +===+=======+==============================================================+ > > @@ -516,9 +518,9 @@ > > * | +-------+--------------------------------------------------------------+ > > * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | > > * | +-------+--------------------------------------------------------------+ > > - * | | 27:16 | DATA0 = MBZ | > > + * | | 27:16 | DATA0 = MARKER - can't be zero | > > and then we can keep legacy definition for the record: > > * | +-------+--------------------------------------------------------------+ > - * | | 27:16 | DATA0 = MBZ | > + * | | 27:16 | DATA0 = MARKER = MBZ (only prior 1.27.0) | > * | +-------+--------------------------------------------------------------+ > + * | | 27:16 | DATA0 = MARKER - can't be zero (1.27.0+) | > + * | +-------+--------------------------------------------------------------+ > > > > * | +-------+--------------------------------------------------------------+ > > - * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE` = 0x5508 | > > + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_DONE` = 0x5508 | > > * +---+-------+--------------------------------------------------------------+ > > * > > * +---+-------+--------------------------------------------------------------+ > > @@ -531,13 +533,13 @@ > > * | | 27:0 | DATA0 = MBZ | > > * +---+-------+--------------------------------------------------------------+ > > */ > > -#define GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE 0x5508u > > +#define GUC_ACTION_VF2GUC_RESFIX_DONE 0x5508u > > > > -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN > > -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0 > > +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN > > +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 > > > > -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > > -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > > +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > > +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > > > > /** > > * DOC: VF2GUC_QUERY_SINGLE_KLV > > @@ -656,4 +658,44 @@ > > #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > > #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_0_USED GUC_HXG_RESPONSE_MSG_0_DATA0 > > > > +/** > > + * DOC: VF2GUC_RESFIX_START > > + * > > + * This action is used by VF to inform the GuC that the VF KMD will be starting > > + * post-migration recovery fixups. > > please mention that @MARKER sent here must later match the MARKER posted in the > VF2GUC_RESFIX_DONE_ message > > > + * > > + * This message must be sent as `MMIO HXG Message`_. > > + * > > + * Available since GuC VF compatibility 1.27.0. > > + * > > + * +---+-------+--------------------------------------------------------------+ > > + * | | Bits | Description | > > + * +===+=======+==============================================================+ > > + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ | > > + * | +-------+--------------------------------------------------------------+ > > + * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | > > + * | +-------+--------------------------------------------------------------+ > > + * | | 27:16 | DATA0 = MARKER - can't be zero | > > + * | +-------+--------------------------------------------------------------+ > > + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_START` = 0x550F | > > + * +---+-------+--------------------------------------------------------------+ > > + * > > + * +---+-------+--------------------------------------------------------------+ > > + * | | Bits | Description | > > + * +===+=======+==============================================================+ > > + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ | > > + * | +-------+--------------------------------------------------------------+ > > + * | | 30:28 | TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_ | > > + * | +-------+--------------------------------------------------------------+ > > + * | | 27:0 | DATA0 = MBZ | > > + * +---+-------+--------------------------------------------------------------+ > > + */ > > +#define GUC_ACTION_VF2GUC_RESFIX_START 0x550Fu > > + > > +#define VF2GUC_RESFIX_START_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN > > +#define VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 > > + > > +#define VF2GUC_RESFIX_START_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN > > +#define VF2GUC_RESFIX_START_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 > > + > > #endif > > diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > > index 4c73a077d314..08c00b773a13 100644 > > --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > > @@ -299,12 +299,13 @@ void xe_gt_sriov_vf_guc_versions(struct xe_gt *gt, > > *found = gt->sriov.vf.guc_version; > > } > > > > -static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) > > +static int guc_action_vf_notify_resfix_start(struct xe_guc *guc, u16 marker) > > { > > u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { > > FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | > > FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | > > - FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE), > > + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_START) | > > + FIELD_PREP(VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER, marker), > > }; > > int ret; > > > > @@ -313,30 +314,54 @@ static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) > > return ret > 0 ? -EPROTO : ret; > > } > > > > -/** > > - * vf_notify_resfix_done - Notify GuC about resource fixups apply completed. > > - * @gt: the &xe_gt struct instance linked to target GuC > > - * > > - * Returns: 0 if the operation completed successfully, or a negative error > > - * code otherwise. > > - */ > > -static int vf_notify_resfix_done(struct xe_gt *gt) > > +static int vf_notify_resfix_start(struct xe_gt *gt, u16 marker) > > { > > struct xe_guc *guc = >->uc.guc; > > int err; > > > > xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); > > > > - err = guc_action_vf_notify_resfix_done(guc); > > + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix start marker %u\n", marker); > > shouldn't this be xe_gt_sriov_dbg_verbose() instead? > > > + > > + err = guc_action_vf_notify_resfix_start(guc, marker); > > if (unlikely(err)) > > - xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", > > + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup start(%pe)\n", > > add space between "start" and "(%pe)" > > > ERR_PTR(err)); > > - else > > - xe_gt_sriov_dbg_verbose(gt, "sent GuC resource fixup done\n"); > > > > return err; > > } > > > > +static int guc_action_vf_notify_resfix_done(struct xe_guc *guc, u16 marker) > > +{ > > + u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { > > + FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | > > + FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | > > + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_DONE) | > > + FIELD_PREP(VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER, marker), > > + }; > > + int ret; > > + > > + ret = xe_guc_mmio_send(guc, request, ARRAY_SIZE(request)); > > + > > + return ret > 0 ? -EPROTO : ret; > > +} > > + > > +static int vf_notify_resfix_done(struct xe_gt *gt, u16 marker) > > +{ > > + struct xe_guc *guc = >->uc.guc; > > + int err; > > + > > + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); > > + > > + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix done marker %u\n", marker); > > dbg_verbose ? > > > + > > + err = guc_action_vf_notify_resfix_done(guc, marker); > > + if (unlikely(err)) > > + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", > > hmm, it's not only about that _we_ failed, it could be that _GuC_ > encountered some errors, as there is ERROR_RESFIX_FAILED, so maybe: > > "Recovery failed at GuC FIXUP_DONE step (%pe)" > > > + ERR_PTR(err)); > > + return err; > > +} > > + > > static int guc_action_query_single_klv(struct xe_guc *guc, u32 key, > > u32 *value, u32 value_len) > > { > > @@ -1183,7 +1208,7 @@ static void vf_post_migration_abort(struct xe_gt *gt) > > xe_guc_submit_pause_abort(>->uc.guc); > > } > > > > -static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) > > +static int vf_post_migration_notify_resfix_done(struct xe_gt *gt, u16 marker) > > { > > bool skip_resfix = false; > > > > @@ -1206,14 +1231,21 @@ static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) > > */ > > xe_irq_resume(gt_to_xe(gt)); > > > > - return vf_notify_resfix_done(gt); > > + return vf_notify_resfix_done(gt, marker); > > +} > > + > > +static u16 vf_post_migration_resfix_start_marker(struct xe_gt *gt) > > +{ > > + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); > > + return ++gt->sriov.vf.migration.resfix_marker; > > should we protect that with lock? > No lock required - this code runs a per-GT ordered workqueue which has built in mutual exclusion. > also see below > > > } > > > > static void vf_post_migration_recovery(struct xe_gt *gt) > > { > > struct xe_device *xe = gt_to_xe(gt); > > - int err; > > + u16 marker; > > bool retry; > > + int err; > > > > xe_gt_sriov_dbg(gt, "migration recovery in progress\n"); > > > > @@ -1227,13 +1259,25 @@ static void vf_post_migration_recovery(struct xe_gt *gt) > > goto fail; > > } > > > > + /* > > + * Increment the startup marker again if it overflows, since GUC > > + * requires a non-zero marker to be set. > > + */ > > + marker = vf_post_migration_resfix_start_marker(gt); > > + if (!marker) > > + marker = vf_post_migration_resfix_start_marker(gt); > > this "overflow" logic shall be in vf_post_migration_resfix_start_marker() > I think I suggested the above as well or at least thought about it. > OTOH by looking at the expected flow, maybe we don't need to track this > marker at all, as it should be sufficient to always pass the same const > non-zero value, GuC will just compare it with 0 anyway > > and we send RESFIX_START/DONE only from within this worker, so we will > never have two parallel recovery sequences which would warrant different > markers Yes, I think a const marker probably works. A marker that moves does maybe is better for debug logging though? Matt > > > + > > + err = vf_notify_resfix_start(gt, marker); > > + if (err) > > + goto fail; > > + > > err = vf_post_migration_fixups(gt); > > if (err) > > goto fail; > > > > vf_post_migration_rearm(gt); > > > > - err = vf_post_migration_notify_resfix_done(gt); > > + err = vf_post_migration_notify_resfix_done(gt, marker); > > if (err && err != -EAGAIN) > > goto fail; > > > > 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 420b0e6089de..66c0062a42c6 100644 > > --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h > > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h > > @@ -52,6 +52,11 @@ struct xe_gt_sriov_vf_migration { > > wait_queue_head_t wq; > > /** @scratch: Scratch memory for VF recovery */ > > void *scratch; > > + /** > > + * @resfix_marker: Marker sent on start and on end of post-migration > > + * steps. > > + */ > > + u16 resfix_marker; > > /** @recovery_teardown: VF post migration recovery is being torn down */ > > bool recovery_teardown; > > /** @recovery_queued: VF post migration recovery in queued */ > > diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c > > index b73498097df5..64b2ddabd3f9 100644 > > --- a/drivers/gpu/drm/xe/xe_sriov_vf.c > > +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c > > @@ -49,11 +49,13 @@ > > * > > * As soon as Virtual GPU of the VM starts, the VF driver within receives > > * the MIGRATED interrupt and schedules post-migration recovery worker. > > - * That worker queries GuC for new provisioning (using MMIO communication), > > + * That worker sends `VF2GUC_NOTIFY_RESFIX_START` action along with non-zero > > drop NOTIFY tag and use trailing _ to create a link: > > VF2GUC_RESFIX_START_ > > > + * marker, queries GuC for new provisioning (using MMIO communication), > > * and applies fixups to any non-virtualized resources used by the VF. > > * > > * When the VF driver is ready to continue operation on the newly connected > > - * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` which causes it to > > + * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` action along with the same > > + * marker which was sent with `VF2GUC_NOTIFY_RESFIX_START` which causes it to > > ditto > > > * enter the long awaited `VF_RUNNING` state, and therefore start handling > > * CTB messages and scheduling workloads from the VF:: > > * > > @@ -102,6 +104,11 @@ > > * | [ ] new VF provisioning [ ] > > * | [ ]---------------------------> [ ] > > * | | [ ] > > + * | | VF2GUC_NOTIFY_RESFIX_START [ ] > > ditto, drop NOTIFY > > > + * | [ ] <---------------------------[ ] > > + * | [ ] [ ] > > + * | [ ] success [ ] > > + * | [ ]---------------------------> [ ] > > * | | VF driver applies post [ ] > > * | | migration fixups -------[ ] > > * | | | [ ] > > @@ -114,7 +121,10 @@ > > * | [ ]------- VF_RUNNING [ ] > > * | [ ] | [ ] > > * | [ ] <----- [ ] > > - * | [ ] success [ ] > > + * | [ ] success (on marker match) [ ] > > + * | [ ]---------------------------> [ ] > > + * | [ ] error (on marker match) [ ] > > + * | [ ] ERROR_RESFIX_MARKER_MISMATCH[ ] > > this error is about bad programming, not worth mentioning here > > for the double-migration case, we expect STATUS_VF_MIGRATED instead > > and in case of error/double migration, VF will not be moved to RUNNING state > > > * | [ ]---------------------------> [ ] > > * | | | > > * | | | > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support 2025-11-19 17:38 ` Matthew Brost @ 2025-11-20 13:33 ` K V P, Satyanarayana 0 siblings, 0 replies; 13+ messages in thread From: K V P, Satyanarayana @ 2025-11-20 13:33 UTC (permalink / raw) To: Matthew Brost, Michal Wajdeczko; +Cc: intel-xe, Tomasz Lis On 19-Nov-25 11:08 PM, Matthew Brost wrote: > On Wed, Nov 19, 2025 at 06:24:45PM +0100, Michal Wajdeczko wrote: >> >> On 11/18/2025 12:41 PM, Satyanarayana K V P wrote: >>> In scenarios involving double migration, the VF KMD may encounter >>> situations where it is instructed to re-migrate before having the >>> opportunity to send RESFIX_DONE for the initial migration. This can occur >>> when the fix-up for the prior migration is still underway, but the VF KMD >>> is migrated again. >>> >>> Consequently, this may lead to the possibility of sending two migration >>> notifications (i.e., pending fix-up for the first migration and a second >>> notification for the new migration). Upon receiving the first RES_FIX >>> notification, the GuC will resume VF submission on the GPU, potentially >>> resulting in undefined behavior, such as system hangs or crashes. >>> >>> To avoid this, post migration, a marker is sent to the GUC prior to the >>> start of resource fixups to indicate start of resource fixups. The same >>> marker is sent along with RESFIX_DONE notification so that GUC can avoid >>> submitting jobs to HW in case of double migration. >>> >>> Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> >>> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> >>> Cc: Matthew Brost <matthew.brost@intel.com> >>> Cc: Tomasz Lis <tomasz.lis@intel.com> >>> >>> --- >>> V3 -> V4: >>> - Updated RESFIX_DONE action name and documenation part. (Michal W) >>> - Enable resfxi_start marked by default as sav/restore is gated on >>> Guc version 70.54.0 >>> >>> V2 -> V3: >>> - Fixed review comments (Michal W). >>> - Updated commit message. >>> - Fixed CI.BAT issues. >>> - Added helper function to assert on unsupported GUC versions. >>> - Updated RESFIX_DONE action name and documenation part. >>> >>> V1 -> V2: >>> - Squashed "Enable RESFIX start marker only on supported GUC >>> versions" commit into a single commit. (Matt B) >>> --- >>> .../gpu/drm/xe/abi/guc_actions_sriov_abi.h | 60 +++++++++++--- >>> drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 80 ++++++++++++++----- >>> drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 5 ++ >>> drivers/gpu/drm/xe/xe_sriov_vf.c | 16 +++- >>> 4 files changed, 131 insertions(+), 30 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h >>> index 0b28659d94e9..1d84ce07b201 100644 >>> --- a/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h >>> +++ b/drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h >>> @@ -502,13 +502,15 @@ >>> #define VF2GUC_VF_RESET_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 >>> >>> /** >>> - * DOC: VF2GUC_NOTIFY_RESFIX_DONE >>> + * DOC: VF2GUC_RESFIX_DONE >>> * >>> - * This action is used by VF to notify the GuC that the VF KMD has completed >>> + * This action is used by VF to inform the GuC that the VF KMD has completed >>> * post-migration recovery steps. >> please mention that from 1.27 it shall only be sent after posting RESFIX_START >> and that both @MARKER fields must match >> >>> * >>> * This message must be sent as `MMIO HXG Message`_. >>> * >>> + * Available since GuC VF compatibility 1.27.0. >> hmm, actually RESFIX_DONE is also available prior 1.27, >> just a meaning of the DATA0 has changed >> >> maybe: >> >> * Updated since GuC VF compatibility 1.27.0. >> >>> + * >>> * +---+-------+--------------------------------------------------------------+ >>> * | | Bits | Description | >>> * +===+=======+==============================================================+ >>> @@ -516,9 +518,9 @@ >>> * | +-------+--------------------------------------------------------------+ >>> * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | >>> * | +-------+--------------------------------------------------------------+ >>> - * | | 27:16 | DATA0 = MBZ | >>> + * | | 27:16 | DATA0 = MARKER - can't be zero | >> and then we can keep legacy definition for the record: >> >> * | +-------+--------------------------------------------------------------+ >> - * | | 27:16 | DATA0 = MBZ | >> + * | | 27:16 | DATA0 = MARKER = MBZ (only prior 1.27.0) | >> * | +-------+--------------------------------------------------------------+ >> + * | | 27:16 | DATA0 = MARKER - can't be zero (1.27.0+) | >> + * | +-------+--------------------------------------------------------------+ >> >> >>> * | +-------+--------------------------------------------------------------+ >>> - * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE` = 0x5508 | >>> + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_DONE` = 0x5508 | >>> * +---+-------+--------------------------------------------------------------+ >>> * >>> * +---+-------+--------------------------------------------------------------+ >>> @@ -531,13 +533,13 @@ >>> * | | 27:0 | DATA0 = MBZ | >>> * +---+-------+--------------------------------------------------------------+ >>> */ >>> -#define GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE 0x5508u >>> +#define GUC_ACTION_VF2GUC_RESFIX_DONE 0x5508u >>> >>> -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN >>> -#define VF2GUC_NOTIFY_RESFIX_DONE_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0 >>> +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN >>> +#define VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 >>> >>> -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN >>> -#define VF2GUC_NOTIFY_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 >>> +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN >>> +#define VF2GUC_RESFIX_DONE_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 >>> >>> /** >>> * DOC: VF2GUC_QUERY_SINGLE_KLV >>> @@ -656,4 +658,44 @@ >>> #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN >>> #define PF2GUC_SAVE_RESTORE_VF_RESPONSE_MSG_0_USED GUC_HXG_RESPONSE_MSG_0_DATA0 >>> >>> +/** >>> + * DOC: VF2GUC_RESFIX_START >>> + * >>> + * This action is used by VF to inform the GuC that the VF KMD will be starting >>> + * post-migration recovery fixups. >> please mention that @MARKER sent here must later match the MARKER posted in the >> VF2GUC_RESFIX_DONE_ message >> >>> + * >>> + * This message must be sent as `MMIO HXG Message`_. >>> + * >>> + * Available since GuC VF compatibility 1.27.0. >>> + * >>> + * +---+-------+--------------------------------------------------------------+ >>> + * | | Bits | Description | >>> + * +===+=======+==============================================================+ >>> + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ | >>> + * | +-------+--------------------------------------------------------------+ >>> + * | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ | >>> + * | +-------+--------------------------------------------------------------+ >>> + * | | 27:16 | DATA0 = MARKER - can't be zero | >>> + * | +-------+--------------------------------------------------------------+ >>> + * | | 15:0 | ACTION = _`GUC_ACTION_VF2GUC_RESFIX_START` = 0x550F | >>> + * +---+-------+--------------------------------------------------------------+ >>> + * >>> + * +---+-------+--------------------------------------------------------------+ >>> + * | | Bits | Description | >>> + * +===+=======+==============================================================+ >>> + * | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ | >>> + * | +-------+--------------------------------------------------------------+ >>> + * | | 30:28 | TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_ | >>> + * | +-------+--------------------------------------------------------------+ >>> + * | | 27:0 | DATA0 = MBZ | >>> + * +---+-------+--------------------------------------------------------------+ >>> + */ >>> +#define GUC_ACTION_VF2GUC_RESFIX_START 0x550Fu >>> + >>> +#define VF2GUC_RESFIX_START_REQUEST_MSG_LEN GUC_HXG_REQUEST_MSG_MIN_LEN >>> +#define VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER GUC_HXG_REQUEST_MSG_0_DATA0 >>> + >>> +#define VF2GUC_RESFIX_START_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN >>> +#define VF2GUC_RESFIX_START_RESPONSE_MSG_0_MBZ GUC_HXG_RESPONSE_MSG_0_DATA0 >>> + >>> #endif >>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c >>> index 4c73a077d314..08c00b773a13 100644 >>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c >>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c >>> @@ -299,12 +299,13 @@ void xe_gt_sriov_vf_guc_versions(struct xe_gt *gt, >>> *found = gt->sriov.vf.guc_version; >>> } >>> >>> -static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) >>> +static int guc_action_vf_notify_resfix_start(struct xe_guc *guc, u16 marker) >>> { >>> u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { >>> FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | >>> FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | >>> - FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_NOTIFY_RESFIX_DONE), >>> + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_START) | >>> + FIELD_PREP(VF2GUC_RESFIX_START_REQUEST_MSG_0_MARKER, marker), >>> }; >>> int ret; >>> >>> @@ -313,30 +314,54 @@ static int guc_action_vf_notify_resfix_done(struct xe_guc *guc) >>> return ret > 0 ? -EPROTO : ret; >>> } >>> >>> -/** >>> - * vf_notify_resfix_done - Notify GuC about resource fixups apply completed. >>> - * @gt: the &xe_gt struct instance linked to target GuC >>> - * >>> - * Returns: 0 if the operation completed successfully, or a negative error >>> - * code otherwise. >>> - */ >>> -static int vf_notify_resfix_done(struct xe_gt *gt) >>> +static int vf_notify_resfix_start(struct xe_gt *gt, u16 marker) >>> { >>> struct xe_guc *guc = >->uc.guc; >>> int err; >>> >>> xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); >>> >>> - err = guc_action_vf_notify_resfix_done(guc); >>> + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix start marker %u\n", marker); >> shouldn't this be xe_gt_sriov_dbg_verbose() instead? >> >>> + >>> + err = guc_action_vf_notify_resfix_start(guc, marker); >>> if (unlikely(err)) >>> - xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", >>> + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup start(%pe)\n", >> add space between "start" and "(%pe)" >> >>> ERR_PTR(err)); >>> - else >>> - xe_gt_sriov_dbg_verbose(gt, "sent GuC resource fixup done\n"); >>> >>> return err; >>> } >>> >>> +static int guc_action_vf_notify_resfix_done(struct xe_guc *guc, u16 marker) >>> +{ >>> + u32 request[GUC_HXG_REQUEST_MSG_MIN_LEN] = { >>> + FIELD_PREP(GUC_HXG_MSG_0_ORIGIN, GUC_HXG_ORIGIN_HOST) | >>> + FIELD_PREP(GUC_HXG_MSG_0_TYPE, GUC_HXG_TYPE_REQUEST) | >>> + FIELD_PREP(GUC_HXG_REQUEST_MSG_0_ACTION, GUC_ACTION_VF2GUC_RESFIX_DONE) | >>> + FIELD_PREP(VF2GUC_RESFIX_DONE_REQUEST_MSG_0_MARKER, marker), >>> + }; >>> + int ret; >>> + >>> + ret = xe_guc_mmio_send(guc, request, ARRAY_SIZE(request)); >>> + >>> + return ret > 0 ? -EPROTO : ret; >>> +} >>> + >>> +static int vf_notify_resfix_done(struct xe_gt *gt, u16 marker) >>> +{ >>> + struct xe_guc *guc = >->uc.guc; >>> + int err; >>> + >>> + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); >>> + >>> + xe_gt_sriov_dbg(guc_to_gt(guc), "Sending resfix done marker %u\n", marker); >> dbg_verbose ? >> >>> + >>> + err = guc_action_vf_notify_resfix_done(guc, marker); >>> + if (unlikely(err)) >>> + xe_gt_sriov_err(gt, "Failed to notify GuC about resource fixup done (%pe)\n", >> hmm, it's not only about that _we_ failed, it could be that _GuC_ >> encountered some errors, as there is ERROR_RESFIX_FAILED, so maybe: >> >> "Recovery failed at GuC FIXUP_DONE step (%pe)" >> >>> + ERR_PTR(err)); >>> + return err; >>> +} >>> + >>> static int guc_action_query_single_klv(struct xe_guc *guc, u32 key, >>> u32 *value, u32 value_len) >>> { >>> @@ -1183,7 +1208,7 @@ static void vf_post_migration_abort(struct xe_gt *gt) >>> xe_guc_submit_pause_abort(>->uc.guc); >>> } >>> >>> -static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) >>> +static int vf_post_migration_notify_resfix_done(struct xe_gt *gt, u16 marker) >>> { >>> bool skip_resfix = false; >>> >>> @@ -1206,14 +1231,21 @@ static int vf_post_migration_notify_resfix_done(struct xe_gt *gt) >>> */ >>> xe_irq_resume(gt_to_xe(gt)); >>> >>> - return vf_notify_resfix_done(gt); >>> + return vf_notify_resfix_done(gt, marker); >>> +} >>> + >>> +static u16 vf_post_migration_resfix_start_marker(struct xe_gt *gt) >>> +{ >>> + xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); >>> + return ++gt->sriov.vf.migration.resfix_marker; >> should we protect that with lock? >> > No lock required - this code runs a per-GT ordered workqueue which has > built in mutual exclusion. > >> also see below >> >>> } >>> >>> static void vf_post_migration_recovery(struct xe_gt *gt) >>> { >>> struct xe_device *xe = gt_to_xe(gt); >>> - int err; >>> + u16 marker; >>> bool retry; >>> + int err; >>> >>> xe_gt_sriov_dbg(gt, "migration recovery in progress\n"); >>> >>> @@ -1227,13 +1259,25 @@ static void vf_post_migration_recovery(struct xe_gt *gt) >>> goto fail; >>> } >>> >>> + /* >>> + * Increment the startup marker again if it overflows, since GUC >>> + * requires a non-zero marker to be set. >>> + */ >>> + marker = vf_post_migration_resfix_start_marker(gt); >>> + if (!marker) >>> + marker = vf_post_migration_resfix_start_marker(gt); >> this "overflow" logic shall be in vf_post_migration_resfix_start_marker() >> > I think I suggested the above as well or at least thought about it. > >> OTOH by looking at the expected flow, maybe we don't need to track this >> marker at all, as it should be sufficient to always pass the same const >> non-zero value, GuC will just compare it with 0 anyway >> >> and we send RESFIX_START/DONE only from within this worker, so we will >> never have two parallel recovery sequences which would warrant different >> markers > Yes, I think a const marker probably works. A marker that moves does > maybe is better for debug logging though? > > Matt Yes. I do agree to have a different marker which will be useful for debugging. Fixed all other review comments in the new revision. -Satya. >>> + >>> + err = vf_notify_resfix_start(gt, marker); >>> + if (err) >>> + goto fail; >>> + >>> err = vf_post_migration_fixups(gt); >>> if (err) >>> goto fail; >>> >>> vf_post_migration_rearm(gt); >>> >>> - err = vf_post_migration_notify_resfix_done(gt); >>> + err = vf_post_migration_notify_resfix_done(gt, marker); >>> if (err && err != -EAGAIN) >>> goto fail; >>> >>> 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 420b0e6089de..66c0062a42c6 100644 >>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h >>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h >>> @@ -52,6 +52,11 @@ struct xe_gt_sriov_vf_migration { >>> wait_queue_head_t wq; >>> /** @scratch: Scratch memory for VF recovery */ >>> void *scratch; >>> + /** >>> + * @resfix_marker: Marker sent on start and on end of post-migration >>> + * steps. >>> + */ >>> + u16 resfix_marker; >>> /** @recovery_teardown: VF post migration recovery is being torn down */ >>> bool recovery_teardown; >>> /** @recovery_queued: VF post migration recovery in queued */ >>> diff --git a/drivers/gpu/drm/xe/xe_sriov_vf.c b/drivers/gpu/drm/xe/xe_sriov_vf.c >>> index b73498097df5..64b2ddabd3f9 100644 >>> --- a/drivers/gpu/drm/xe/xe_sriov_vf.c >>> +++ b/drivers/gpu/drm/xe/xe_sriov_vf.c >>> @@ -49,11 +49,13 @@ >>> * >>> * As soon as Virtual GPU of the VM starts, the VF driver within receives >>> * the MIGRATED interrupt and schedules post-migration recovery worker. >>> - * That worker queries GuC for new provisioning (using MMIO communication), >>> + * That worker sends `VF2GUC_NOTIFY_RESFIX_START` action along with non-zero >> drop NOTIFY tag and use trailing _ to create a link: >> >> VF2GUC_RESFIX_START_ >> >>> + * marker, queries GuC for new provisioning (using MMIO communication), >>> * and applies fixups to any non-virtualized resources used by the VF. >>> * >>> * When the VF driver is ready to continue operation on the newly connected >>> - * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` which causes it to >>> + * hardware, it sends `VF2GUC_NOTIFY_RESFIX_DONE` action along with the same >>> + * marker which was sent with `VF2GUC_NOTIFY_RESFIX_START` which causes it to >> ditto >> >>> * enter the long awaited `VF_RUNNING` state, and therefore start handling >>> * CTB messages and scheduling workloads from the VF:: >>> * >>> @@ -102,6 +104,11 @@ >>> * | [ ] new VF provisioning [ ] >>> * | [ ]---------------------------> [ ] >>> * | | [ ] >>> + * | | VF2GUC_NOTIFY_RESFIX_START [ ] >> ditto, drop NOTIFY >> >>> + * | [ ] <---------------------------[ ] >>> + * | [ ] [ ] >>> + * | [ ] success [ ] >>> + * | [ ]---------------------------> [ ] >>> * | | VF driver applies post [ ] >>> * | | migration fixups -------[ ] >>> * | | | [ ] >>> @@ -114,7 +121,10 @@ >>> * | [ ]------- VF_RUNNING [ ] >>> * | [ ] | [ ] >>> * | [ ] <----- [ ] >>> - * | [ ] success [ ] >>> + * | [ ] success (on marker match) [ ] >>> + * | [ ]---------------------------> [ ] >>> + * | [ ] error (on marker match) [ ] >>> + * | [ ] ERROR_RESFIX_MARKER_MISMATCH[ ] >> this error is about bad programming, not worth mentioning here >> >> for the double-migration case, we expect STATUS_VF_MIGRATED instead >> >> and in case of error/double migration, VF will not be moved to RUNNING state >> >>> * | [ ]---------------------------> [ ] >>> * | | | >>> * | | | ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v4 3/3] drm/xe/vf: Add debugfs entries to test VF double migration 2025-11-18 11:41 [PATCH v4 0/3] VF double migration Satyanarayana K V P 2025-11-18 11:41 ` [PATCH v4 1/3] drm/xe/vf: Enable VF migration only on supported GUC versions Satyanarayana K V P 2025-11-18 11:41 ` [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support Satyanarayana K V P @ 2025-11-18 11:41 ` Satyanarayana K V P 2025-11-19 17:51 ` Michal Wajdeczko 2025-11-18 12:31 ` ✓ CI.KUnit: success for VF double migration (rev4) Patchwork ` (2 subsequent siblings) 5 siblings, 1 reply; 13+ messages in thread From: Satyanarayana K V P @ 2025-11-18 11:41 UTC (permalink / raw) To: intel-xe; +Cc: Satyanarayana K V P, Michal Wajdeczko, Matthew Brost, Tomasz Lis VF migration sends a marker to the GUC before resource fixups begin, and repeats the marker with the RESFIX_DONE notification. This prevents the GUC from submitting jobs during double migration events. To reliably test double migration, a second migration must be triggered while fixups from the first migration are still in progress. Since fixups complete quickly, reproducing this scenario is difficult. Introduce debugfs controls to add delays in the post-fixup phase, creating a deterministic window for subsequent migrations. New debugfs entries: /sys/kernel/debug/dri/<card>/ ├── gt0 │ ├── vf │ │ ├── resfix_delay_ms - resfix_delay_ms: delay after sending RESFIX_START marker Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Matthew Brost <matthew.brost@intel.com> Cc: Tomasz Lis <tomasz.lis@intel.com> --- V3 -> V4: - New commit V2 -> V3: - None. V1 -> V2: - None. --- drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 13 +++++++++++++ drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c | 5 +++++ drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 8 ++++++++ 3 files changed, 26 insertions(+) diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c index 08c00b773a13..13ae71dca208 100644 --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c @@ -5,6 +5,7 @@ #include <linux/bitfield.h> #include <linux/bsearch.h> +#include <linux/delay.h> #include <drm/drm_managed.h> #include <drm/drm_print.h> @@ -1234,6 +1235,16 @@ static int vf_post_migration_notify_resfix_done(struct xe_gt *gt, u16 marker) return vf_notify_resfix_done(gt, marker); } +static inline void vf_post_migration_inject_delay(struct xe_gt *gt) +{ + ulong delay_ms = gt->sriov.vf.migration.debug.resfix_delay_ms; + + if (delay_ms) { + xe_gt_dbg(gt, "*TESTING* injecting %lu ms delay ...\n", delay_ms); + msleep(delay_ms); + } +} + static u16 vf_post_migration_resfix_start_marker(struct xe_gt *gt) { xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); @@ -1275,6 +1286,8 @@ static void vf_post_migration_recovery(struct xe_gt *gt) if (err) goto fail; + vf_post_migration_inject_delay(gt); + vf_post_migration_rearm(gt); err = vf_post_migration_notify_resfix_done(gt, marker); diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c index 2ed5b6780d30..33d6f37d8dd6 100644 --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c @@ -69,4 +69,9 @@ void xe_gt_sriov_vf_debugfs_register(struct xe_gt *gt, struct dentry *root) vfdentry->d_inode->i_private = gt; drm_debugfs_create_files(vf_info, ARRAY_SIZE(vf_info), vfdentry, minor); + + if (IS_ENABLED(CONFIG_DRM_XE_DEBUG)) { + debugfs_create_ulong("resfix_delay_ms", 0600, vfdentry, + >->sriov.vf.migration.debug.resfix_delay_ms); + } } 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 66c0062a42c6..e7244e9fd406 100644 --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h @@ -52,6 +52,14 @@ struct xe_gt_sriov_vf_migration { wait_queue_head_t wq; /** @scratch: Scratch memory for VF recovery */ void *scratch; + /** @debug: Debug hooks for delaying migration */ + struct { + /** + * @debug.resfix_delay_ms: Delay in msec after RESFIX_START + * marker is sent to GUC. + */ + ulong resfix_delay_ms; + } debug; /** * @resfix_marker: Marker sent on start and on end of post-migration * steps. -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v4 3/3] drm/xe/vf: Add debugfs entries to test VF double migration 2025-11-18 11:41 ` [PATCH v4 3/3] drm/xe/vf: Add debugfs entries to test VF double migration Satyanarayana K V P @ 2025-11-19 17:51 ` Michal Wajdeczko 2025-11-20 13:35 ` K V P, Satyanarayana 0 siblings, 1 reply; 13+ messages in thread From: Michal Wajdeczko @ 2025-11-19 17:51 UTC (permalink / raw) To: Satyanarayana K V P, intel-xe; +Cc: Matthew Brost, Tomasz Lis On 11/18/2025 12:41 PM, Satyanarayana K V P wrote: > VF migration sends a marker to the GUC before resource fixups begin, > and repeats the marker with the RESFIX_DONE notification. This prevents > the GUC from submitting jobs during double migration events. > > To reliably test double migration, a second migration must be triggered > while fixups from the first migration are still in progress. Since fixups > complete quickly, reproducing this scenario is difficult. Introduce > debugfs controls to add delays in the post-fixup phase, creating a > deterministic window for subsequent migrations. how will we know which delay value gives "deterministic" result? on some setups, delay like 10s could be too small, and maybe for others will be just a waste of time? maybe instead of looking for some best finite delay, we should just introduce some other mechanism that would block next 'recovery' step by explicit action from the test? maybe this debugfs entry should be like: resfix_stoppers: ulong 0 = no stops/no waits/no delays BIT(0) = stop before sending RESFIX START BIT(1) = stop before querying BIT(2) = stop before restarting BIT(3) = stop before sending RESFIX DONE then the test can setup stop points before starting migration and then driver will enter a loop until given stop bit is cleared by the test? > > New debugfs entries: > /sys/kernel/debug/dri/<card>/ > ├── gt0 > │ ├── vf > │ │ ├── resfix_delay_ms > > - resfix_delay_ms: delay after sending RESFIX_START marker > > Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> > Cc: Matthew Brost <matthew.brost@intel.com> > Cc: Tomasz Lis <tomasz.lis@intel.com> > > --- > V3 -> V4: > - New commit > > V2 -> V3: > - None. > > V1 -> V2: > - None. > --- > drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 13 +++++++++++++ > drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c | 5 +++++ > drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 8 ++++++++ > 3 files changed, 26 insertions(+) > > diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > index 08c00b773a13..13ae71dca208 100644 > --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c > @@ -5,6 +5,7 @@ > > #include <linux/bitfield.h> > #include <linux/bsearch.h> > +#include <linux/delay.h> > > #include <drm/drm_managed.h> > #include <drm/drm_print.h> > @@ -1234,6 +1235,16 @@ static int vf_post_migration_notify_resfix_done(struct xe_gt *gt, u16 marker) > return vf_notify_resfix_done(gt, marker); > } > > +static inline void vf_post_migration_inject_delay(struct xe_gt *gt) > +{ > + ulong delay_ms = gt->sriov.vf.migration.debug.resfix_delay_ms; > + > + if (delay_ms) { > + xe_gt_dbg(gt, "*TESTING* injecting %lu ms delay ...\n", delay_ms); > + msleep(delay_ms); > + } > +} > + > static u16 vf_post_migration_resfix_start_marker(struct xe_gt *gt) > { > xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); > @@ -1275,6 +1286,8 @@ static void vf_post_migration_recovery(struct xe_gt *gt) > if (err) > goto fail; > > + vf_post_migration_inject_delay(gt); shouldn't we wait right after sending RESFIX_START, ie. before calling vf_post_migration_fixups() ? or have few wait/stop points to allow testing more scenarios? > + > vf_post_migration_rearm(gt); > > err = vf_post_migration_notify_resfix_done(gt, marker); > diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c > index 2ed5b6780d30..33d6f37d8dd6 100644 > --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c > @@ -69,4 +69,9 @@ void xe_gt_sriov_vf_debugfs_register(struct xe_gt *gt, struct dentry *root) > vfdentry->d_inode->i_private = gt; > > drm_debugfs_create_files(vf_info, ARRAY_SIZE(vf_info), vfdentry, minor); > + > + if (IS_ENABLED(CONFIG_DRM_XE_DEBUG)) { > + debugfs_create_ulong("resfix_delay_ms", 0600, vfdentry, > + >->sriov.vf.migration.debug.resfix_delay_ms); > + } > } > 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 66c0062a42c6..e7244e9fd406 100644 > --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h > @@ -52,6 +52,14 @@ struct xe_gt_sriov_vf_migration { > wait_queue_head_t wq; > /** @scratch: Scratch memory for VF recovery */ > void *scratch; > + /** @debug: Debug hooks for delaying migration */ > + struct { > + /** > + * @debug.resfix_delay_ms: Delay in msec after RESFIX_START > + * marker is sent to GUC. > + */ > + ulong resfix_delay_ms; > + } debug; > /** > * @resfix_marker: Marker sent on start and on end of post-migration > * steps. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v4 3/3] drm/xe/vf: Add debugfs entries to test VF double migration 2025-11-19 17:51 ` Michal Wajdeczko @ 2025-11-20 13:35 ` K V P, Satyanarayana 0 siblings, 0 replies; 13+ messages in thread From: K V P, Satyanarayana @ 2025-11-20 13:35 UTC (permalink / raw) To: Michal Wajdeczko, intel-xe; +Cc: Matthew Brost, Tomasz Lis On 19-Nov-25 11:21 PM, Michal Wajdeczko wrote: > > On 11/18/2025 12:41 PM, Satyanarayana K V P wrote: >> VF migration sends a marker to the GUC before resource fixups begin, >> and repeats the marker with the RESFIX_DONE notification. This prevents >> the GUC from submitting jobs during double migration events. >> >> To reliably test double migration, a second migration must be triggered >> while fixups from the first migration are still in progress. Since fixups >> complete quickly, reproducing this scenario is difficult. Introduce >> debugfs controls to add delays in the post-fixup phase, creating a >> deterministic window for subsequent migrations. > how will we know which delay value gives "deterministic" result? > > on some setups, delay like 10s could be too small, and maybe for > others will be just a waste of time? > > maybe instead of looking for some best finite delay, we should just > introduce some other mechanism that would block next 'recovery' step > by explicit action from the test? > > maybe this debugfs entry should be like: > > resfix_stoppers: ulong > 0 = no stops/no waits/no delays > BIT(0) = stop before sending RESFIX START > BIT(1) = stop before querying > BIT(2) = stop before restarting > BIT(3) = stop before sending RESFIX DONE > > then the test can setup stop points before starting migration > > and then driver will enter a loop until given stop bit is cleared > by the test? Updated debugfs entries as suggested in the new revision. Instead of waiting indefinitely when the bit is set, max wait time of 10 seconds is used. After 10 seconds, it proceeds to the next stage. -Satya. >> New debugfs entries: >> /sys/kernel/debug/dri/<card>/ >> ├── gt0 >> │ ├── vf >> │ │ ├── resfix_delay_ms >> >> - resfix_delay_ms: delay after sending RESFIX_START marker >> >> Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com> >> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> >> Cc: Matthew Brost <matthew.brost@intel.com> >> Cc: Tomasz Lis <tomasz.lis@intel.com> >> >> --- >> V3 -> V4: >> - New commit >> >> V2 -> V3: >> - None. >> >> V1 -> V2: >> - None. >> --- >> drivers/gpu/drm/xe/xe_gt_sriov_vf.c | 13 +++++++++++++ >> drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c | 5 +++++ >> drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h | 8 ++++++++ >> 3 files changed, 26 insertions(+) >> >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c >> index 08c00b773a13..13ae71dca208 100644 >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf.c >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf.c >> @@ -5,6 +5,7 @@ >> >> #include <linux/bitfield.h> >> #include <linux/bsearch.h> >> +#include <linux/delay.h> >> >> #include <drm/drm_managed.h> >> #include <drm/drm_print.h> >> @@ -1234,6 +1235,16 @@ static int vf_post_migration_notify_resfix_done(struct xe_gt *gt, u16 marker) >> return vf_notify_resfix_done(gt, marker); >> } >> >> +static inline void vf_post_migration_inject_delay(struct xe_gt *gt) >> +{ >> + ulong delay_ms = gt->sriov.vf.migration.debug.resfix_delay_ms; >> + >> + if (delay_ms) { >> + xe_gt_dbg(gt, "*TESTING* injecting %lu ms delay ...\n", delay_ms); >> + msleep(delay_ms); >> + } >> +} >> + >> static u16 vf_post_migration_resfix_start_marker(struct xe_gt *gt) >> { >> xe_gt_assert(gt, IS_SRIOV_VF(gt_to_xe(gt))); >> @@ -1275,6 +1286,8 @@ static void vf_post_migration_recovery(struct xe_gt *gt) >> if (err) >> goto fail; >> >> + vf_post_migration_inject_delay(gt); > shouldn't we wait right after sending RESFIX_START, > ie. before calling vf_post_migration_fixups() ? > > or have few wait/stop points to allow testing more scenarios? > >> + >> vf_post_migration_rearm(gt); >> >> err = vf_post_migration_notify_resfix_done(gt, marker); >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c >> index 2ed5b6780d30..33d6f37d8dd6 100644 >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.c >> @@ -69,4 +69,9 @@ void xe_gt_sriov_vf_debugfs_register(struct xe_gt *gt, struct dentry *root) >> vfdentry->d_inode->i_private = gt; >> >> drm_debugfs_create_files(vf_info, ARRAY_SIZE(vf_info), vfdentry, minor); >> + >> + if (IS_ENABLED(CONFIG_DRM_XE_DEBUG)) { >> + debugfs_create_ulong("resfix_delay_ms", 0600, vfdentry, >> + >->sriov.vf.migration.debug.resfix_delay_ms); >> + } >> } >> 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 66c0062a42c6..e7244e9fd406 100644 >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_vf_types.h >> @@ -52,6 +52,14 @@ struct xe_gt_sriov_vf_migration { >> wait_queue_head_t wq; >> /** @scratch: Scratch memory for VF recovery */ >> void *scratch; >> + /** @debug: Debug hooks for delaying migration */ >> + struct { >> + /** >> + * @debug.resfix_delay_ms: Delay in msec after RESFIX_START >> + * marker is sent to GUC. >> + */ >> + ulong resfix_delay_ms; >> + } debug; >> /** >> * @resfix_marker: Marker sent on start and on end of post-migration >> * steps. ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ CI.KUnit: success for VF double migration (rev4) 2025-11-18 11:41 [PATCH v4 0/3] VF double migration Satyanarayana K V P ` (2 preceding siblings ...) 2025-11-18 11:41 ` [PATCH v4 3/3] drm/xe/vf: Add debugfs entries to test VF double migration Satyanarayana K V P @ 2025-11-18 12:31 ` Patchwork 2025-11-18 13:09 ` ✓ Xe.CI.BAT: " Patchwork 2025-11-18 15:19 ` ✗ Xe.CI.Full: failure " Patchwork 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2025-11-18 12:31 UTC (permalink / raw) To: Satyanarayana K V P; +Cc: intel-xe == Series Details == Series: VF double migration (rev4) URL : https://patchwork.freedesktop.org/series/156339/ State : success == Summary == + trap cleanup EXIT + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig [12:29:58] Configuring KUnit Kernel ... Generating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [12:30:02] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [12:30:32] Starting KUnit Kernel (1/1)... [12:30:32] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [12:30:33] ================== guc_buf (11 subtests) =================== [12:30:33] [PASSED] test_smallest [12:30:33] [PASSED] test_largest [12:30:33] [PASSED] test_granular [12:30:33] [PASSED] test_unique [12:30:33] [PASSED] test_overlap [12:30:33] [PASSED] test_reusable [12:30:33] [PASSED] test_too_big [12:30:33] [PASSED] test_flush [12:30:33] [PASSED] test_lookup [12:30:33] [PASSED] test_data [12:30:33] [PASSED] test_class [12:30:33] ===================== [PASSED] guc_buf ===================== [12:30:33] =================== guc_dbm (7 subtests) =================== [12:30:33] [PASSED] test_empty [12:30:33] [PASSED] test_default [12:30:33] ======================== test_size ======================== [12:30:33] [PASSED] 4 [12:30:33] [PASSED] 8 [12:30:33] [PASSED] 32 [12:30:33] [PASSED] 256 [12:30:33] ==================== [PASSED] test_size ==================== [12:30:33] ======================= test_reuse ======================== [12:30:33] [PASSED] 4 [12:30:33] [PASSED] 8 [12:30:33] [PASSED] 32 [12:30:33] [PASSED] 256 [12:30:33] =================== [PASSED] test_reuse ==================== [12:30:33] =================== test_range_overlap ==================== [12:30:33] [PASSED] 4 [12:30:33] [PASSED] 8 [12:30:33] [PASSED] 32 [12:30:33] [PASSED] 256 [12:30:33] =============== [PASSED] test_range_overlap ================ [12:30:33] =================== test_range_compact ==================== [12:30:33] [PASSED] 4 [12:30:33] [PASSED] 8 [12:30:33] [PASSED] 32 [12:30:33] [PASSED] 256 [12:30:33] =============== [PASSED] test_range_compact ================ [12:30:33] ==================== test_range_spare ===================== [12:30:33] [PASSED] 4 [12:30:33] [PASSED] 8 [12:30:33] [PASSED] 32 [12:30:33] [PASSED] 256 [12:30:33] ================ [PASSED] test_range_spare ================= [12:30:33] ===================== [PASSED] guc_dbm ===================== [12:30:33] =================== guc_idm (6 subtests) =================== [12:30:33] [PASSED] bad_init [12:30:33] [PASSED] no_init [12:30:33] [PASSED] init_fini [12:30:33] [PASSED] check_used [12:30:33] [PASSED] check_quota [12:30:33] [PASSED] check_all [12:30:33] ===================== [PASSED] guc_idm ===================== [12:30:33] ================== no_relay (3 subtests) =================== [12:30:33] [PASSED] xe_drops_guc2pf_if_not_ready [12:30:33] [PASSED] xe_drops_guc2vf_if_not_ready [12:30:33] [PASSED] xe_rejects_send_if_not_ready [12:30:33] ==================== [PASSED] no_relay ===================== [12:30:33] ================== pf_relay (14 subtests) ================== [12:30:33] [PASSED] pf_rejects_guc2pf_too_short [12:30:33] [PASSED] pf_rejects_guc2pf_too_long [12:30:33] [PASSED] pf_rejects_guc2pf_no_payload [12:30:33] [PASSED] pf_fails_no_payload [12:30:33] [PASSED] pf_fails_bad_origin [12:30:33] [PASSED] pf_fails_bad_type [12:30:33] [PASSED] pf_txn_reports_error [12:30:33] [PASSED] pf_txn_sends_pf2guc [12:30:33] [PASSED] pf_sends_pf2guc [12:30:33] [SKIPPED] pf_loopback_nop [12:30:33] [SKIPPED] pf_loopback_echo [12:30:33] [SKIPPED] pf_loopback_fail [12:30:33] [SKIPPED] pf_loopback_busy [12:30:33] [SKIPPED] pf_loopback_retry [12:30:33] ==================== [PASSED] pf_relay ===================== [12:30:33] ================== vf_relay (3 subtests) =================== [12:30:33] [PASSED] vf_rejects_guc2vf_too_short [12:30:33] [PASSED] vf_rejects_guc2vf_too_long [12:30:33] [PASSED] vf_rejects_guc2vf_no_payload [12:30:33] ==================== [PASSED] vf_relay ===================== [12:30:33] ================ pf_gt_config (6 subtests) ================= [12:30:33] [PASSED] fair_contexts_1vf [12:30:33] [PASSED] fair_doorbells_1vf [12:30:33] [PASSED] fair_ggtt_1vf [12:30:33] ====================== fair_contexts ====================== [12:30:33] [PASSED] 1 VF [12:30:33] [PASSED] 2 VFs [12:30:33] [PASSED] 3 VFs [12:30:33] [PASSED] 4 VFs [12:30:33] [PASSED] 5 VFs [12:30:33] [PASSED] 6 VFs [12:30:33] [PASSED] 7 VFs [12:30:33] [PASSED] 8 VFs [12:30:33] [PASSED] 9 VFs [12:30:33] [PASSED] 10 VFs [12:30:33] [PASSED] 11 VFs [12:30:33] [PASSED] 12 VFs [12:30:33] [PASSED] 13 VFs [12:30:33] [PASSED] 14 VFs [12:30:33] [PASSED] 15 VFs [12:30:33] [PASSED] 16 VFs [12:30:33] [PASSED] 17 VFs [12:30:33] [PASSED] 18 VFs [12:30:33] [PASSED] 19 VFs [12:30:33] [PASSED] 20 VFs [12:30:33] [PASSED] 21 VFs [12:30:33] [PASSED] 22 VFs [12:30:33] [PASSED] 23 VFs [12:30:33] [PASSED] 24 VFs [12:30:33] [PASSED] 25 VFs [12:30:33] [PASSED] 26 VFs [12:30:33] [PASSED] 27 VFs [12:30:33] [PASSED] 28 VFs [12:30:33] [PASSED] 29 VFs [12:30:33] [PASSED] 30 VFs [12:30:33] [PASSED] 31 VFs [12:30:33] [PASSED] 32 VFs [12:30:33] [PASSED] 33 VFs [12:30:33] [PASSED] 34 VFs [12:30:33] [PASSED] 35 VFs [12:30:33] [PASSED] 36 VFs [12:30:33] [PASSED] 37 VFs [12:30:33] [PASSED] 38 VFs [12:30:33] [PASSED] 39 VFs [12:30:33] [PASSED] 40 VFs [12:30:33] [PASSED] 41 VFs [12:30:33] [PASSED] 42 VFs [12:30:33] [PASSED] 43 VFs [12:30:33] [PASSED] 44 VFs [12:30:33] [PASSED] 45 VFs [12:30:33] [PASSED] 46 VFs [12:30:33] [PASSED] 47 VFs [12:30:33] [PASSED] 48 VFs [12:30:33] [PASSED] 49 VFs [12:30:33] [PASSED] 50 VFs [12:30:33] [PASSED] 51 VFs [12:30:33] [PASSED] 52 VFs [12:30:33] [PASSED] 53 VFs [12:30:33] [PASSED] 54 VFs [12:30:33] [PASSED] 55 VFs [12:30:33] [PASSED] 56 VFs [12:30:33] [PASSED] 57 VFs [12:30:33] [PASSED] 58 VFs [12:30:33] [PASSED] 59 VFs [12:30:33] [PASSED] 60 VFs [12:30:33] [PASSED] 61 VFs [12:30:33] [PASSED] 62 VFs [12:30:33] [PASSED] 63 VFs [12:30:33] ================== [PASSED] fair_contexts ================== [12:30:33] ===================== fair_doorbells ====================== [12:30:33] [PASSED] 1 VF [12:30:33] [PASSED] 2 VFs [12:30:33] [PASSED] 3 VFs [12:30:33] [PASSED] 4 VFs [12:30:33] [PASSED] 5 VFs [12:30:33] [PASSED] 6 VFs [12:30:33] [PASSED] 7 VFs [12:30:33] [PASSED] 8 VFs [12:30:33] [PASSED] 9 VFs [12:30:33] [PASSED] 10 VFs [12:30:33] [PASSED] 11 VFs [12:30:33] [PASSED] 12 VFs [12:30:33] [PASSED] 13 VFs [12:30:33] [PASSED] 14 VFs [12:30:33] [PASSED] 15 VFs [12:30:33] [PASSED] 16 VFs [12:30:33] [PASSED] 17 VFs [12:30:33] [PASSED] 18 VFs [12:30:33] [PASSED] 19 VFs [12:30:33] [PASSED] 20 VFs [12:30:33] [PASSED] 21 VFs [12:30:33] [PASSED] 22 VFs [12:30:33] [PASSED] 23 VFs [12:30:33] [PASSED] 24 VFs [12:30:33] [PASSED] 25 VFs [12:30:33] [PASSED] 26 VFs [12:30:33] [PASSED] 27 VFs [12:30:33] [PASSED] 28 VFs [12:30:33] [PASSED] 29 VFs [12:30:33] [PASSED] 30 VFs [12:30:33] [PASSED] 31 VFs [12:30:33] [PASSED] 32 VFs [12:30:33] [PASSED] 33 VFs [12:30:33] [PASSED] 34 VFs [12:30:33] [PASSED] 35 VFs [12:30:33] [PASSED] 36 VFs [12:30:33] [PASSED] 37 VFs [12:30:33] [PASSED] 38 VFs [12:30:33] [PASSED] 39 VFs [12:30:33] [PASSED] 40 VFs [12:30:33] [PASSED] 41 VFs [12:30:33] [PASSED] 42 VFs [12:30:33] [PASSED] 43 VFs [12:30:33] [PASSED] 44 VFs [12:30:33] [PASSED] 45 VFs [12:30:33] [PASSED] 46 VFs [12:30:33] [PASSED] 47 VFs [12:30:33] [PASSED] 48 VFs [12:30:33] [PASSED] 49 VFs [12:30:33] [PASSED] 50 VFs [12:30:33] [PASSED] 51 VFs [12:30:33] [PASSED] 52 VFs [12:30:33] [PASSED] 53 VFs [12:30:33] [PASSED] 54 VFs [12:30:33] [PASSED] 55 VFs [12:30:33] [PASSED] 56 VFs [12:30:33] [PASSED] 57 VFs [12:30:33] [PASSED] 58 VFs [12:30:33] [PASSED] 59 VFs [12:30:33] [PASSED] 60 VFs [12:30:33] [PASSED] 61 VFs [12:30:33] [PASSED] 62 VFs [12:30:33] [PASSED] 63 VFs [12:30:33] ================= [PASSED] fair_doorbells ================== [12:30:33] ======================== fair_ggtt ======================== [12:30:33] [PASSED] 1 VF [12:30:33] [PASSED] 2 VFs [12:30:33] [PASSED] 3 VFs [12:30:33] [PASSED] 4 VFs [12:30:33] [PASSED] 5 VFs [12:30:33] [PASSED] 6 VFs [12:30:33] [PASSED] 7 VFs [12:30:33] [PASSED] 8 VFs [12:30:33] [PASSED] 9 VFs [12:30:33] [PASSED] 10 VFs [12:30:33] [PASSED] 11 VFs [12:30:33] [PASSED] 12 VFs [12:30:33] [PASSED] 13 VFs [12:30:33] [PASSED] 14 VFs [12:30:33] [PASSED] 15 VFs [12:30:33] [PASSED] 16 VFs [12:30:33] [PASSED] 17 VFs [12:30:33] [PASSED] 18 VFs [12:30:33] [PASSED] 19 VFs [12:30:33] [PASSED] 20 VFs [12:30:33] [PASSED] 21 VFs [12:30:33] [PASSED] 22 VFs [12:30:33] [PASSED] 23 VFs [12:30:33] [PASSED] 24 VFs [12:30:33] [PASSED] 25 VFs [12:30:33] [PASSED] 26 VFs [12:30:33] [PASSED] 27 VFs [12:30:33] [PASSED] 28 VFs [12:30:33] [PASSED] 29 VFs [12:30:33] [PASSED] 30 VFs [12:30:33] [PASSED] 31 VFs [12:30:33] [PASSED] 32 VFs [12:30:33] [PASSED] 33 VFs [12:30:33] [PASSED] 34 VFs [12:30:33] [PASSED] 35 VFs [12:30:33] [PASSED] 36 VFs [12:30:33] [PASSED] 37 VFs [12:30:33] [PASSED] 38 VFs [12:30:33] [PASSED] 39 VFs [12:30:33] [PASSED] 40 VFs [12:30:33] [PASSED] 41 VFs [12:30:33] [PASSED] 42 VFs [12:30:33] [PASSED] 43 VFs [12:30:33] [PASSED] 44 VFs [12:30:33] [PASSED] 45 VFs [12:30:33] [PASSED] 46 VFs [12:30:33] [PASSED] 47 VFs [12:30:33] [PASSED] 48 VFs [12:30:33] [PASSED] 49 VFs [12:30:33] [PASSED] 50 VFs [12:30:33] [PASSED] 51 VFs [12:30:33] [PASSED] 52 VFs [12:30:33] [PASSED] 53 VFs [12:30:33] [PASSED] 54 VFs [12:30:33] [PASSED] 55 VFs [12:30:33] [PASSED] 56 VFs [12:30:33] [PASSED] 57 VFs [12:30:33] [PASSED] 58 VFs [12:30:33] [PASSED] 59 VFs [12:30:33] [PASSED] 60 VFs [12:30:33] [PASSED] 61 VFs [12:30:33] [PASSED] 62 VFs [12:30:33] [PASSED] 63 VFs [12:30:33] ==================== [PASSED] fair_ggtt ==================== [12:30:33] ================== [PASSED] pf_gt_config =================== [12:30:33] ===================== lmtt (1 subtest) ===================== [12:30:33] ======================== test_ops ========================= [12:30:33] [PASSED] 2-level [12:30:33] [PASSED] multi-level [12:30:33] ==================== [PASSED] test_ops ===================== [12:30:33] ====================== [PASSED] lmtt ======================= [12:30:33] ================= pf_service (11 subtests) ================= [12:30:33] [PASSED] pf_negotiate_any [12:30:33] [PASSED] pf_negotiate_base_match [12:30:33] [PASSED] pf_negotiate_base_newer [12:30:33] [PASSED] pf_negotiate_base_next [12:30:33] [SKIPPED] pf_negotiate_base_older [12:30:33] [PASSED] pf_negotiate_base_prev [12:30:33] [PASSED] pf_negotiate_latest_match [12:30:33] [PASSED] pf_negotiate_latest_newer [12:30:33] [PASSED] pf_negotiate_latest_next [12:30:33] [SKIPPED] pf_negotiate_latest_older [12:30:33] [SKIPPED] pf_negotiate_latest_prev [12:30:33] =================== [PASSED] pf_service ==================== [12:30:33] ================= xe_guc_g2g (2 subtests) ================== [12:30:33] ============== xe_live_guc_g2g_kunit_default ============== [12:30:33] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ========== [12:30:33] ============== xe_live_guc_g2g_kunit_allmem =============== [12:30:33] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ========== [12:30:33] =================== [SKIPPED] xe_guc_g2g =================== [12:30:33] =================== xe_mocs (2 subtests) =================== [12:30:33] ================ xe_live_mocs_kernel_kunit ================ [12:30:33] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============ [12:30:33] ================ xe_live_mocs_reset_kunit ================= [12:30:33] ============ [SKIPPED] xe_live_mocs_reset_kunit ============ [12:30:33] ==================== [SKIPPED] xe_mocs ===================== [12:30:33] ================= xe_migrate (2 subtests) ================== [12:30:33] ================= xe_migrate_sanity_kunit ================= [12:30:33] ============ [SKIPPED] xe_migrate_sanity_kunit ============= [12:30:33] ================== xe_validate_ccs_kunit ================== [12:30:33] ============= [SKIPPED] xe_validate_ccs_kunit ============== [12:30:33] =================== [SKIPPED] xe_migrate =================== [12:30:33] ================== xe_dma_buf (1 subtest) ================== [12:30:33] ==================== xe_dma_buf_kunit ===================== [12:30:33] ================ [SKIPPED] xe_dma_buf_kunit ================ [12:30:33] =================== [SKIPPED] xe_dma_buf =================== [12:30:33] ================= xe_bo_shrink (1 subtest) ================= [12:30:33] =================== xe_bo_shrink_kunit ==================== [12:30:33] =============== [SKIPPED] xe_bo_shrink_kunit =============== [12:30:33] ================== [SKIPPED] xe_bo_shrink ================== [12:30:33] ==================== xe_bo (2 subtests) ==================== [12:30:33] ================== xe_ccs_migrate_kunit =================== [12:30:33] ============== [SKIPPED] xe_ccs_migrate_kunit ============== [12:30:33] ==================== xe_bo_evict_kunit ==================== [12:30:33] =============== [SKIPPED] xe_bo_evict_kunit ================ [12:30:33] ===================== [SKIPPED] xe_bo ====================== [12:30:33] ==================== args (11 subtests) ==================== [12:30:33] [PASSED] count_args_test [12:30:33] [PASSED] call_args_example [12:30:33] [PASSED] call_args_test [12:30:33] [PASSED] drop_first_arg_example [12:30:33] [PASSED] drop_first_arg_test [12:30:33] [PASSED] first_arg_example [12:30:33] [PASSED] first_arg_test [12:30:33] [PASSED] last_arg_example [12:30:33] [PASSED] last_arg_test [12:30:33] [PASSED] pick_arg_example [12:30:33] [PASSED] sep_comma_example [12:30:33] ====================== [PASSED] args ======================= [12:30:33] =================== xe_pci (3 subtests) ==================== [12:30:33] ==================== check_graphics_ip ==================== [12:30:33] [PASSED] 12.00 Xe_LP [12:30:33] [PASSED] 12.10 Xe_LP+ [12:30:33] [PASSED] 12.55 Xe_HPG [12:30:33] [PASSED] 12.60 Xe_HPC [12:30:33] [PASSED] 12.70 Xe_LPG [12:30:33] [PASSED] 12.71 Xe_LPG [12:30:33] [PASSED] 12.74 Xe_LPG+ [12:30:33] [PASSED] 20.01 Xe2_HPG [12:30:33] [PASSED] 20.02 Xe2_HPG [12:30:33] [PASSED] 20.04 Xe2_LPG [12:30:33] [PASSED] 30.00 Xe3_LPG [12:30:33] [PASSED] 30.01 Xe3_LPG [12:30:33] [PASSED] 30.03 Xe3_LPG [12:30:33] [PASSED] 30.04 Xe3_LPG [12:30:33] [PASSED] 30.05 Xe3_LPG [12:30:33] [PASSED] 35.11 Xe3p_XPC [12:30:33] ================ [PASSED] check_graphics_ip ================ [12:30:33] ===================== check_media_ip ====================== [12:30:33] [PASSED] 12.00 Xe_M [12:30:33] [PASSED] 12.55 Xe_HPM [12:30:33] [PASSED] 13.00 Xe_LPM+ [12:30:33] [PASSED] 13.01 Xe2_HPM [12:30:33] [PASSED] 20.00 Xe2_LPM [12:30:33] [PASSED] 30.00 Xe3_LPM [12:30:33] [PASSED] 30.02 Xe3_LPM [12:30:33] [PASSED] 35.00 Xe3p_LPM [12:30:33] [PASSED] 35.03 Xe3p_HPM [12:30:33] ================= [PASSED] check_media_ip ================== [12:30:33] =================== check_platform_desc =================== [12:30:33] [PASSED] 0x9A60 (TIGERLAKE) [12:30:33] [PASSED] 0x9A68 (TIGERLAKE) [12:30:33] [PASSED] 0x9A70 (TIGERLAKE) [12:30:33] [PASSED] 0x9A40 (TIGERLAKE) [12:30:33] [PASSED] 0x9A49 (TIGERLAKE) [12:30:33] [PASSED] 0x9A59 (TIGERLAKE) [12:30:33] [PASSED] 0x9A78 (TIGERLAKE) [12:30:33] [PASSED] 0x9AC0 (TIGERLAKE) [12:30:33] [PASSED] 0x9AC9 (TIGERLAKE) [12:30:33] [PASSED] 0x9AD9 (TIGERLAKE) [12:30:33] [PASSED] 0x9AF8 (TIGERLAKE) [12:30:33] [PASSED] 0x4C80 (ROCKETLAKE) [12:30:33] [PASSED] 0x4C8A (ROCKETLAKE) [12:30:33] [PASSED] 0x4C8B (ROCKETLAKE) [12:30:33] [PASSED] 0x4C8C (ROCKETLAKE) [12:30:33] [PASSED] 0x4C90 (ROCKETLAKE) [12:30:33] [PASSED] 0x4C9A (ROCKETLAKE) [12:30:33] [PASSED] 0x4680 (ALDERLAKE_S) [12:30:33] [PASSED] 0x4682 (ALDERLAKE_S) [12:30:33] [PASSED] 0x4688 (ALDERLAKE_S) [12:30:33] [PASSED] 0x468A (ALDERLAKE_S) [12:30:33] [PASSED] 0x468B (ALDERLAKE_S) [12:30:33] [PASSED] 0x4690 (ALDERLAKE_S) [12:30:33] [PASSED] 0x4692 (ALDERLAKE_S) [12:30:33] [PASSED] 0x4693 (ALDERLAKE_S) [12:30:33] [PASSED] 0x46A0 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46A1 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46A2 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46A3 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46A6 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46A8 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46AA (ALDERLAKE_P) [12:30:33] [PASSED] 0x462A (ALDERLAKE_P) [12:30:33] [PASSED] 0x4626 (ALDERLAKE_P) [12:30:33] [PASSED] 0x4628 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46B0 (ALDERLAKE_P) stty: 'standard input': Inappropriate ioctl for device [12:30:33] [PASSED] 0x46B1 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46B2 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46B3 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46C0 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46C1 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46C2 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46C3 (ALDERLAKE_P) [12:30:33] [PASSED] 0x46D0 (ALDERLAKE_N) [12:30:33] [PASSED] 0x46D1 (ALDERLAKE_N) [12:30:33] [PASSED] 0x46D2 (ALDERLAKE_N) [12:30:33] [PASSED] 0x46D3 (ALDERLAKE_N) [12:30:33] [PASSED] 0x46D4 (ALDERLAKE_N) [12:30:33] [PASSED] 0xA721 (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7A1 (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7A9 (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7AC (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7AD (ALDERLAKE_P) [12:30:33] [PASSED] 0xA720 (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7A0 (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7A8 (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7AA (ALDERLAKE_P) [12:30:33] [PASSED] 0xA7AB (ALDERLAKE_P) [12:30:33] [PASSED] 0xA780 (ALDERLAKE_S) [12:30:33] [PASSED] 0xA781 (ALDERLAKE_S) [12:30:33] [PASSED] 0xA782 (ALDERLAKE_S) [12:30:33] [PASSED] 0xA783 (ALDERLAKE_S) [12:30:33] [PASSED] 0xA788 (ALDERLAKE_S) [12:30:33] [PASSED] 0xA789 (ALDERLAKE_S) [12:30:33] [PASSED] 0xA78A (ALDERLAKE_S) [12:30:33] [PASSED] 0xA78B (ALDERLAKE_S) [12:30:33] [PASSED] 0x4905 (DG1) [12:30:33] [PASSED] 0x4906 (DG1) [12:30:33] [PASSED] 0x4907 (DG1) [12:30:33] [PASSED] 0x4908 (DG1) [12:30:33] [PASSED] 0x4909 (DG1) [12:30:33] [PASSED] 0x56C0 (DG2) [12:30:33] [PASSED] 0x56C2 (DG2) [12:30:33] [PASSED] 0x56C1 (DG2) [12:30:33] [PASSED] 0x7D51 (METEORLAKE) [12:30:33] [PASSED] 0x7DD1 (METEORLAKE) [12:30:33] [PASSED] 0x7D41 (METEORLAKE) [12:30:33] [PASSED] 0x7D67 (METEORLAKE) [12:30:33] [PASSED] 0xB640 (METEORLAKE) [12:30:33] [PASSED] 0x56A0 (DG2) [12:30:33] [PASSED] 0x56A1 (DG2) [12:30:33] [PASSED] 0x56A2 (DG2) [12:30:33] [PASSED] 0x56BE (DG2) [12:30:33] [PASSED] 0x56BF (DG2) [12:30:33] [PASSED] 0x5690 (DG2) [12:30:33] [PASSED] 0x5691 (DG2) [12:30:33] [PASSED] 0x5692 (DG2) [12:30:33] [PASSED] 0x56A5 (DG2) [12:30:33] [PASSED] 0x56A6 (DG2) [12:30:33] [PASSED] 0x56B0 (DG2) [12:30:33] [PASSED] 0x56B1 (DG2) [12:30:33] [PASSED] 0x56BA (DG2) [12:30:33] [PASSED] 0x56BB (DG2) [12:30:33] [PASSED] 0x56BC (DG2) [12:30:33] [PASSED] 0x56BD (DG2) [12:30:33] [PASSED] 0x5693 (DG2) [12:30:33] [PASSED] 0x5694 (DG2) [12:30:33] [PASSED] 0x5695 (DG2) [12:30:33] [PASSED] 0x56A3 (DG2) [12:30:33] [PASSED] 0x56A4 (DG2) [12:30:33] [PASSED] 0x56B2 (DG2) [12:30:33] [PASSED] 0x56B3 (DG2) [12:30:33] [PASSED] 0x5696 (DG2) [12:30:33] [PASSED] 0x5697 (DG2) [12:30:33] [PASSED] 0xB69 (PVC) [12:30:33] [PASSED] 0xB6E (PVC) [12:30:33] [PASSED] 0xBD4 (PVC) [12:30:33] [PASSED] 0xBD5 (PVC) [12:30:33] [PASSED] 0xBD6 (PVC) [12:30:33] [PASSED] 0xBD7 (PVC) [12:30:33] [PASSED] 0xBD8 (PVC) [12:30:33] [PASSED] 0xBD9 (PVC) [12:30:33] [PASSED] 0xBDA (PVC) [12:30:33] [PASSED] 0xBDB (PVC) [12:30:33] [PASSED] 0xBE0 (PVC) [12:30:33] [PASSED] 0xBE1 (PVC) [12:30:33] [PASSED] 0xBE5 (PVC) [12:30:33] [PASSED] 0x7D40 (METEORLAKE) [12:30:33] [PASSED] 0x7D45 (METEORLAKE) [12:30:33] [PASSED] 0x7D55 (METEORLAKE) [12:30:33] [PASSED] 0x7D60 (METEORLAKE) [12:30:33] [PASSED] 0x7DD5 (METEORLAKE) [12:30:33] [PASSED] 0x6420 (LUNARLAKE) [12:30:33] [PASSED] 0x64A0 (LUNARLAKE) [12:30:33] [PASSED] 0x64B0 (LUNARLAKE) [12:30:33] [PASSED] 0xE202 (BATTLEMAGE) [12:30:33] [PASSED] 0xE209 (BATTLEMAGE) [12:30:33] [PASSED] 0xE20B (BATTLEMAGE) [12:30:33] [PASSED] 0xE20C (BATTLEMAGE) [12:30:33] [PASSED] 0xE20D (BATTLEMAGE) [12:30:33] [PASSED] 0xE210 (BATTLEMAGE) [12:30:33] [PASSED] 0xE211 (BATTLEMAGE) [12:30:33] [PASSED] 0xE212 (BATTLEMAGE) [12:30:33] [PASSED] 0xE216 (BATTLEMAGE) [12:30:33] [PASSED] 0xE220 (BATTLEMAGE) [12:30:33] [PASSED] 0xE221 (BATTLEMAGE) [12:30:33] [PASSED] 0xE222 (BATTLEMAGE) [12:30:33] [PASSED] 0xE223 (BATTLEMAGE) [12:30:33] [PASSED] 0xB080 (PANTHERLAKE) [12:30:33] [PASSED] 0xB081 (PANTHERLAKE) [12:30:33] [PASSED] 0xB082 (PANTHERLAKE) [12:30:33] [PASSED] 0xB083 (PANTHERLAKE) [12:30:33] [PASSED] 0xB084 (PANTHERLAKE) [12:30:33] [PASSED] 0xB085 (PANTHERLAKE) [12:30:33] [PASSED] 0xB086 (PANTHERLAKE) [12:30:33] [PASSED] 0xB087 (PANTHERLAKE) [12:30:33] [PASSED] 0xB08F (PANTHERLAKE) [12:30:33] [PASSED] 0xB090 (PANTHERLAKE) [12:30:33] [PASSED] 0xB0A0 (PANTHERLAKE) [12:30:33] [PASSED] 0xB0B0 (PANTHERLAKE) [12:30:33] [PASSED] 0xD740 (NOVALAKE_S) [12:30:33] [PASSED] 0xD741 (NOVALAKE_S) [12:30:33] [PASSED] 0xD742 (NOVALAKE_S) [12:30:33] [PASSED] 0xD743 (NOVALAKE_S) [12:30:33] [PASSED] 0xD744 (NOVALAKE_S) [12:30:33] [PASSED] 0xD745 (NOVALAKE_S) [12:30:33] [PASSED] 0x674C (CRESCENTISLAND) [12:30:33] [PASSED] 0xFD80 (PANTHERLAKE) [12:30:33] [PASSED] 0xFD81 (PANTHERLAKE) [12:30:33] =============== [PASSED] check_platform_desc =============== [12:30:33] ===================== [PASSED] xe_pci ====================== [12:30:33] =================== xe_rtp (2 subtests) ==================== [12:30:33] =============== xe_rtp_process_to_sr_tests ================ [12:30:33] [PASSED] coalesce-same-reg [12:30:33] [PASSED] no-match-no-add [12:30:33] [PASSED] match-or [12:30:33] [PASSED] match-or-xfail [12:30:33] [PASSED] no-match-no-add-multiple-rules [12:30:33] [PASSED] two-regs-two-entries [12:30:33] [PASSED] clr-one-set-other [12:30:33] [PASSED] set-field [12:30:33] [PASSED] conflict-duplicate [12:30:33] [PASSED] conflict-not-disjoint [12:30:33] [PASSED] conflict-reg-type [12:30:33] =========== [PASSED] xe_rtp_process_to_sr_tests ============ [12:30:33] ================== xe_rtp_process_tests =================== [12:30:33] [PASSED] active1 [12:30:33] [PASSED] active2 [12:30:33] [PASSED] active-inactive [12:30:33] [PASSED] inactive-active [12:30:33] [PASSED] inactive-1st_or_active-inactive [12:30:33] [PASSED] inactive-2nd_or_active-inactive [12:30:33] [PASSED] inactive-last_or_active-inactive [12:30:33] [PASSED] inactive-no_or_active-inactive [12:30:33] ============== [PASSED] xe_rtp_process_tests =============== [12:30:33] ===================== [PASSED] xe_rtp ====================== [12:30:33] ==================== xe_wa (1 subtest) ===================== [12:30:33] ======================== xe_wa_gt ========================= [12:30:33] [PASSED] TIGERLAKE B0 [12:30:33] [PASSED] DG1 A0 [12:30:33] [PASSED] DG1 B0 [12:30:33] [PASSED] ALDERLAKE_S A0 [12:30:33] [PASSED] ALDERLAKE_S B0 [12:30:33] [PASSED] ALDERLAKE_S C0 [12:30:33] [PASSED] ALDERLAKE_S D0 [12:30:33] [PASSED] ALDERLAKE_P A0 [12:30:33] [PASSED] ALDERLAKE_P B0 [12:30:33] [PASSED] ALDERLAKE_P C0 [12:30:33] [PASSED] ALDERLAKE_S RPLS D0 [12:30:33] [PASSED] ALDERLAKE_P RPLU E0 [12:30:33] [PASSED] DG2 G10 C0 [12:30:33] [PASSED] DG2 G11 B1 [12:30:33] [PASSED] DG2 G12 A1 [12:30:33] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0 [12:30:33] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0 [12:30:33] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0 [12:30:33] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0 [12:30:33] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0 [12:30:33] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1 [12:30:33] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0 [12:30:33] ==================== [PASSED] xe_wa_gt ===================== [12:30:33] ====================== [PASSED] xe_wa ====================== [12:30:33] ============================================================ [12:30:33] Testing complete. Ran 510 tests: passed: 492, skipped: 18 [12:30:33] Elapsed time: 35.064s total, 4.195s configuring, 30.402s building, 0.448s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig [12:30:33] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [12:30:35] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [12:30:59] Starting KUnit Kernel (1/1)... [12:30:59] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [12:30:59] ============ drm_test_pick_cmdline (2 subtests) ============ [12:30:59] [PASSED] drm_test_pick_cmdline_res_1920_1080_60 [12:30:59] =============== drm_test_pick_cmdline_named =============== [12:30:59] [PASSED] NTSC [12:30:59] [PASSED] NTSC-J [12:30:59] [PASSED] PAL [12:30:59] [PASSED] PAL-M [12:30:59] =========== [PASSED] drm_test_pick_cmdline_named =========== [12:30:59] ============== [PASSED] drm_test_pick_cmdline ============== [12:30:59] == drm_test_atomic_get_connector_for_encoder (1 subtest) === [12:30:59] [PASSED] drm_test_drm_atomic_get_connector_for_encoder [12:30:59] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ==== [12:30:59] =========== drm_validate_clone_mode (2 subtests) =========== [12:30:59] ============== drm_test_check_in_clone_mode =============== [12:30:59] [PASSED] in_clone_mode [12:30:59] [PASSED] not_in_clone_mode [12:30:59] ========== [PASSED] drm_test_check_in_clone_mode =========== [12:30:59] =============== drm_test_check_valid_clones =============== [12:30:59] [PASSED] not_in_clone_mode [12:30:59] [PASSED] valid_clone [12:30:59] [PASSED] invalid_clone [12:30:59] =========== [PASSED] drm_test_check_valid_clones =========== [12:30:59] ============= [PASSED] drm_validate_clone_mode ============= [12:30:59] ============= drm_validate_modeset (1 subtest) ============= [12:30:59] [PASSED] drm_test_check_connector_changed_modeset [12:30:59] ============== [PASSED] drm_validate_modeset =============== [12:30:59] ====== drm_test_bridge_get_current_state (2 subtests) ====== [12:30:59] [PASSED] drm_test_drm_bridge_get_current_state_atomic [12:30:59] [PASSED] drm_test_drm_bridge_get_current_state_legacy [12:30:59] ======== [PASSED] drm_test_bridge_get_current_state ======== [12:30:59] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ====== [12:30:59] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic [12:30:59] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled [12:30:59] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy [12:30:59] ======== [PASSED] drm_test_bridge_helper_reset_crtc ======== [12:30:59] ============== drm_bridge_alloc (2 subtests) =============== [12:30:59] [PASSED] drm_test_drm_bridge_alloc_basic [12:30:59] [PASSED] drm_test_drm_bridge_alloc_get_put [12:30:59] ================ [PASSED] drm_bridge_alloc ================= [12:30:59] ================== drm_buddy (8 subtests) ================== [12:30:59] [PASSED] drm_test_buddy_alloc_limit [12:30:59] [PASSED] drm_test_buddy_alloc_optimistic [12:30:59] [PASSED] drm_test_buddy_alloc_pessimistic [12:30:59] [PASSED] drm_test_buddy_alloc_pathological [12:30:59] [PASSED] drm_test_buddy_alloc_contiguous [12:30:59] [PASSED] drm_test_buddy_alloc_clear [12:31:00] [PASSED] drm_test_buddy_alloc_range_bias [12:31:00] [PASSED] drm_test_buddy_fragmentation_performance [12:31:00] ==================== [PASSED] drm_buddy ==================== [12:31:00] ============= drm_cmdline_parser (40 subtests) ============= [12:31:00] [PASSED] drm_test_cmdline_force_d_only [12:31:00] [PASSED] drm_test_cmdline_force_D_only_dvi [12:31:00] [PASSED] drm_test_cmdline_force_D_only_hdmi [12:31:00] [PASSED] drm_test_cmdline_force_D_only_not_digital [12:31:00] [PASSED] drm_test_cmdline_force_e_only [12:31:00] [PASSED] drm_test_cmdline_res [12:31:00] [PASSED] drm_test_cmdline_res_vesa [12:31:00] [PASSED] drm_test_cmdline_res_vesa_rblank [12:31:00] [PASSED] drm_test_cmdline_res_rblank [12:31:00] [PASSED] drm_test_cmdline_res_bpp [12:31:00] [PASSED] drm_test_cmdline_res_refresh [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh_margins [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital [12:31:00] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on [12:31:00] [PASSED] drm_test_cmdline_res_margins_force_on [12:31:00] [PASSED] drm_test_cmdline_res_vesa_margins [12:31:00] [PASSED] drm_test_cmdline_name [12:31:00] [PASSED] drm_test_cmdline_name_bpp [12:31:00] [PASSED] drm_test_cmdline_name_option [12:31:00] [PASSED] drm_test_cmdline_name_bpp_option [12:31:00] [PASSED] drm_test_cmdline_rotate_0 [12:31:00] [PASSED] drm_test_cmdline_rotate_90 [12:31:00] [PASSED] drm_test_cmdline_rotate_180 [12:31:00] [PASSED] drm_test_cmdline_rotate_270 [12:31:00] [PASSED] drm_test_cmdline_hmirror [12:31:00] [PASSED] drm_test_cmdline_vmirror [12:31:00] [PASSED] drm_test_cmdline_margin_options [12:31:00] [PASSED] drm_test_cmdline_multiple_options [12:31:00] [PASSED] drm_test_cmdline_bpp_extra_and_option [12:31:00] [PASSED] drm_test_cmdline_extra_and_option [12:31:00] [PASSED] drm_test_cmdline_freestanding_options [12:31:00] [PASSED] drm_test_cmdline_freestanding_force_e_and_options [12:31:00] [PASSED] drm_test_cmdline_panel_orientation [12:31:00] ================ drm_test_cmdline_invalid ================= [12:31:00] [PASSED] margin_only [12:31:00] [PASSED] interlace_only [12:31:00] [PASSED] res_missing_x [12:31:00] [PASSED] res_missing_y [12:31:00] [PASSED] res_bad_y [12:31:00] [PASSED] res_missing_y_bpp [12:31:00] [PASSED] res_bad_bpp [12:31:00] [PASSED] res_bad_refresh [12:31:00] [PASSED] res_bpp_refresh_force_on_off [12:31:00] [PASSED] res_invalid_mode [12:31:00] [PASSED] res_bpp_wrong_place_mode [12:31:00] [PASSED] name_bpp_refresh [12:31:00] [PASSED] name_refresh [12:31:00] [PASSED] name_refresh_wrong_mode [12:31:00] [PASSED] name_refresh_invalid_mode [12:31:00] [PASSED] rotate_multiple [12:31:00] [PASSED] rotate_invalid_val [12:31:00] [PASSED] rotate_truncated [12:31:00] [PASSED] invalid_option [12:31:00] [PASSED] invalid_tv_option [12:31:00] [PASSED] truncated_tv_option [12:31:00] ============ [PASSED] drm_test_cmdline_invalid ============= [12:31:00] =============== drm_test_cmdline_tv_options =============== [12:31:00] [PASSED] NTSC [12:31:00] [PASSED] NTSC_443 [12:31:00] [PASSED] NTSC_J [12:31:00] [PASSED] PAL [12:31:00] [PASSED] PAL_M [12:31:00] [PASSED] PAL_N [12:31:00] [PASSED] SECAM [12:31:00] [PASSED] MONO_525 [12:31:00] [PASSED] MONO_625 [12:31:00] =========== [PASSED] drm_test_cmdline_tv_options =========== [12:31:00] =============== [PASSED] drm_cmdline_parser ================ [12:31:00] ========== drmm_connector_hdmi_init (20 subtests) ========== [12:31:00] [PASSED] drm_test_connector_hdmi_init_valid [12:31:00] [PASSED] drm_test_connector_hdmi_init_bpc_8 [12:31:00] [PASSED] drm_test_connector_hdmi_init_bpc_10 [12:31:00] [PASSED] drm_test_connector_hdmi_init_bpc_12 [12:31:00] [PASSED] drm_test_connector_hdmi_init_bpc_invalid [12:31:00] [PASSED] drm_test_connector_hdmi_init_bpc_null [12:31:00] [PASSED] drm_test_connector_hdmi_init_formats_empty [12:31:00] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb [12:31:00] === drm_test_connector_hdmi_init_formats_yuv420_allowed === [12:31:00] [PASSED] supported_formats=0x9 yuv420_allowed=1 [12:31:00] [PASSED] supported_formats=0x9 yuv420_allowed=0 [12:31:00] [PASSED] supported_formats=0x3 yuv420_allowed=1 [12:31:00] [PASSED] supported_formats=0x3 yuv420_allowed=0 [12:31:00] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed === [12:31:00] [PASSED] drm_test_connector_hdmi_init_null_ddc [12:31:00] [PASSED] drm_test_connector_hdmi_init_null_product [12:31:00] [PASSED] drm_test_connector_hdmi_init_null_vendor [12:31:00] [PASSED] drm_test_connector_hdmi_init_product_length_exact [12:31:00] [PASSED] drm_test_connector_hdmi_init_product_length_too_long [12:31:00] [PASSED] drm_test_connector_hdmi_init_product_valid [12:31:00] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact [12:31:00] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long [12:31:00] [PASSED] drm_test_connector_hdmi_init_vendor_valid [12:31:00] ========= drm_test_connector_hdmi_init_type_valid ========= [12:31:00] [PASSED] HDMI-A [12:31:00] [PASSED] HDMI-B [12:31:00] ===== [PASSED] drm_test_connector_hdmi_init_type_valid ===== [12:31:00] ======== drm_test_connector_hdmi_init_type_invalid ======== [12:31:00] [PASSED] Unknown [12:31:00] [PASSED] VGA [12:31:00] [PASSED] DVI-I [12:31:00] [PASSED] DVI-D [12:31:00] [PASSED] DVI-A [12:31:00] [PASSED] Composite [12:31:00] [PASSED] SVIDEO [12:31:00] [PASSED] LVDS [12:31:00] [PASSED] Component [12:31:00] [PASSED] DIN [12:31:00] [PASSED] DP [12:31:00] [PASSED] TV [12:31:00] [PASSED] eDP [12:31:00] [PASSED] Virtual [12:31:00] [PASSED] DSI [12:31:00] [PASSED] DPI [12:31:00] [PASSED] Writeback [12:31:00] [PASSED] SPI [12:31:00] [PASSED] USB [12:31:00] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ==== [12:31:00] ============ [PASSED] drmm_connector_hdmi_init ============= [12:31:00] ============= drmm_connector_init (3 subtests) ============= [12:31:00] [PASSED] drm_test_drmm_connector_init [12:31:00] [PASSED] drm_test_drmm_connector_init_null_ddc [12:31:00] ========= drm_test_drmm_connector_init_type_valid ========= [12:31:00] [PASSED] Unknown [12:31:00] [PASSED] VGA [12:31:00] [PASSED] DVI-I [12:31:00] [PASSED] DVI-D [12:31:00] [PASSED] DVI-A [12:31:00] [PASSED] Composite [12:31:00] [PASSED] SVIDEO [12:31:00] [PASSED] LVDS [12:31:00] [PASSED] Component [12:31:00] [PASSED] DIN [12:31:00] [PASSED] DP [12:31:00] [PASSED] HDMI-A [12:31:00] [PASSED] HDMI-B [12:31:00] [PASSED] TV [12:31:00] [PASSED] eDP [12:31:00] [PASSED] Virtual [12:31:00] [PASSED] DSI [12:31:00] [PASSED] DPI [12:31:00] [PASSED] Writeback [12:31:00] [PASSED] SPI [12:31:00] [PASSED] USB [12:31:00] ===== [PASSED] drm_test_drmm_connector_init_type_valid ===== [12:31:00] =============== [PASSED] drmm_connector_init =============== [12:31:00] ========= drm_connector_dynamic_init (6 subtests) ========== [12:31:00] [PASSED] drm_test_drm_connector_dynamic_init [12:31:00] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc [12:31:00] [PASSED] drm_test_drm_connector_dynamic_init_not_added [12:31:00] [PASSED] drm_test_drm_connector_dynamic_init_properties [12:31:00] ===== drm_test_drm_connector_dynamic_init_type_valid ====== [12:31:00] [PASSED] Unknown [12:31:00] [PASSED] VGA [12:31:00] [PASSED] DVI-I [12:31:00] [PASSED] DVI-D [12:31:00] [PASSED] DVI-A [12:31:00] [PASSED] Composite [12:31:00] [PASSED] SVIDEO [12:31:00] [PASSED] LVDS [12:31:00] [PASSED] Component [12:31:00] [PASSED] DIN [12:31:00] [PASSED] DP [12:31:00] [PASSED] HDMI-A [12:31:00] [PASSED] HDMI-B [12:31:00] [PASSED] TV [12:31:00] [PASSED] eDP [12:31:00] [PASSED] Virtual [12:31:00] [PASSED] DSI [12:31:00] [PASSED] DPI [12:31:00] [PASSED] Writeback [12:31:00] [PASSED] SPI [12:31:00] [PASSED] USB [12:31:00] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid == [12:31:00] ======== drm_test_drm_connector_dynamic_init_name ========= [12:31:00] [PASSED] Unknown [12:31:00] [PASSED] VGA [12:31:00] [PASSED] DVI-I [12:31:00] [PASSED] DVI-D [12:31:00] [PASSED] DVI-A [12:31:00] [PASSED] Composite [12:31:00] [PASSED] SVIDEO [12:31:00] [PASSED] LVDS [12:31:00] [PASSED] Component [12:31:00] [PASSED] DIN [12:31:00] [PASSED] DP [12:31:00] [PASSED] HDMI-A [12:31:00] [PASSED] HDMI-B [12:31:00] [PASSED] TV [12:31:00] [PASSED] eDP [12:31:00] [PASSED] Virtual [12:31:00] [PASSED] DSI [12:31:00] [PASSED] DPI [12:31:00] [PASSED] Writeback [12:31:00] [PASSED] SPI [12:31:00] [PASSED] USB [12:31:00] ==== [PASSED] drm_test_drm_connector_dynamic_init_name ===== [12:31:00] =========== [PASSED] drm_connector_dynamic_init ============ [12:31:00] ==== drm_connector_dynamic_register_early (4 subtests) ===== [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_early_defer [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object [12:31:00] ====== [PASSED] drm_connector_dynamic_register_early ======= [12:31:00] ======= drm_connector_dynamic_register (7 subtests) ======== [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_on_list [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_no_defer [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_no_init [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_mode_object [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_sysfs [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name [12:31:00] [PASSED] drm_test_drm_connector_dynamic_register_debugfs [12:31:00] ========= [PASSED] drm_connector_dynamic_register ========== [12:31:00] = drm_connector_attach_broadcast_rgb_property (2 subtests) = [12:31:00] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property [12:31:00] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector [12:31:00] === [PASSED] drm_connector_attach_broadcast_rgb_property === [12:31:00] ========== drm_get_tv_mode_from_name (2 subtests) ========== [12:31:00] ========== drm_test_get_tv_mode_from_name_valid =========== [12:31:00] [PASSED] NTSC [12:31:00] [PASSED] NTSC-443 [12:31:00] [PASSED] NTSC-J [12:31:00] [PASSED] PAL [12:31:00] [PASSED] PAL-M [12:31:00] [PASSED] PAL-N [12:31:00] [PASSED] SECAM [12:31:00] [PASSED] Mono [12:31:00] ====== [PASSED] drm_test_get_tv_mode_from_name_valid ======= [12:31:00] [PASSED] drm_test_get_tv_mode_from_name_truncated [12:31:00] ============ [PASSED] drm_get_tv_mode_from_name ============ [12:31:00] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) = [12:31:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb [12:31:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc [12:31:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1 [12:31:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc [12:31:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1 [12:31:00] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double [12:31:00] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid = [12:31:00] [PASSED] VIC 96 [12:31:00] [PASSED] VIC 97 [12:31:00] [PASSED] VIC 101 [12:31:00] [PASSED] VIC 102 [12:31:00] [PASSED] VIC 106 [12:31:00] [PASSED] VIC 107 [12:31:00] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid === [12:31:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc [12:31:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc [12:31:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc [12:31:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc [12:31:00] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc [12:31:00] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ==== [12:31:00] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) == [12:31:00] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ==== [12:31:00] [PASSED] Automatic [12:31:00] [PASSED] Full [12:31:00] [PASSED] Limited 16:235 [12:31:00] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name === [12:31:00] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid [12:31:00] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ==== [12:31:00] == drm_hdmi_connector_get_output_format_name (2 subtests) == [12:31:00] === drm_test_drm_hdmi_connector_get_output_format_name ==== [12:31:00] [PASSED] RGB [12:31:00] [PASSED] YUV 4:2:0 [12:31:00] [PASSED] YUV 4:2:2 [12:31:00] [PASSED] YUV 4:4:4 [12:31:00] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name === [12:31:00] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid [12:31:00] ==== [PASSED] drm_hdmi_connector_get_output_format_name ==== [12:31:00] ============= drm_damage_helper (21 subtests) ============== [12:31:00] [PASSED] drm_test_damage_iter_no_damage [12:31:00] [PASSED] drm_test_damage_iter_no_damage_fractional_src [12:31:00] [PASSED] drm_test_damage_iter_no_damage_src_moved [12:31:00] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved [12:31:00] [PASSED] drm_test_damage_iter_no_damage_not_visible [12:31:00] [PASSED] drm_test_damage_iter_no_damage_no_crtc [12:31:00] [PASSED] drm_test_damage_iter_no_damage_no_fb [12:31:00] [PASSED] drm_test_damage_iter_simple_damage [12:31:00] [PASSED] drm_test_damage_iter_single_damage [12:31:00] [PASSED] drm_test_damage_iter_single_damage_intersect_src [12:31:00] [PASSED] drm_test_damage_iter_single_damage_outside_src [12:31:00] [PASSED] drm_test_damage_iter_single_damage_fractional_src [12:31:00] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src [12:31:00] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src [12:31:00] [PASSED] drm_test_damage_iter_single_damage_src_moved [12:31:00] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved [12:31:00] [PASSED] drm_test_damage_iter_damage [12:31:00] [PASSED] drm_test_damage_iter_damage_one_intersect [12:31:00] [PASSED] drm_test_damage_iter_damage_one_outside [12:31:00] [PASSED] drm_test_damage_iter_damage_src_moved [12:31:00] [PASSED] drm_test_damage_iter_damage_not_visible [12:31:00] ================ [PASSED] drm_damage_helper ================ [12:31:00] ============== drm_dp_mst_helper (3 subtests) ============== [12:31:00] ============== drm_test_dp_mst_calc_pbn_mode ============== [12:31:00] [PASSED] Clock 154000 BPP 30 DSC disabled [12:31:00] [PASSED] Clock 234000 BPP 30 DSC disabled [12:31:00] [PASSED] Clock 297000 BPP 24 DSC disabled [12:31:00] [PASSED] Clock 332880 BPP 24 DSC enabled [12:31:00] [PASSED] Clock 324540 BPP 24 DSC enabled [12:31:00] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ========== [12:31:00] ============== drm_test_dp_mst_calc_pbn_div =============== [12:31:00] [PASSED] Link rate 2000000 lane count 4 [12:31:00] [PASSED] Link rate 2000000 lane count 2 [12:31:00] [PASSED] Link rate 2000000 lane count 1 [12:31:00] [PASSED] Link rate 1350000 lane count 4 [12:31:00] [PASSED] Link rate 1350000 lane count 2 [12:31:00] [PASSED] Link rate 1350000 lane count 1 [12:31:00] [PASSED] Link rate 1000000 lane count 4 [12:31:00] [PASSED] Link rate 1000000 lane count 2 [12:31:00] [PASSED] Link rate 1000000 lane count 1 [12:31:00] [PASSED] Link rate 810000 lane count 4 [12:31:00] [PASSED] Link rate 810000 lane count 2 [12:31:00] [PASSED] Link rate 810000 lane count 1 [12:31:00] [PASSED] Link rate 540000 lane count 4 [12:31:00] [PASSED] Link rate 540000 lane count 2 [12:31:00] [PASSED] Link rate 540000 lane count 1 [12:31:00] [PASSED] Link rate 270000 lane count 4 [12:31:00] [PASSED] Link rate 270000 lane count 2 [12:31:00] [PASSED] Link rate 270000 lane count 1 [12:31:00] [PASSED] Link rate 162000 lane count 4 [12:31:00] [PASSED] Link rate 162000 lane count 2 [12:31:00] [PASSED] Link rate 162000 lane count 1 [12:31:00] ========== [PASSED] drm_test_dp_mst_calc_pbn_div =========== [12:31:00] ========= drm_test_dp_mst_sideband_msg_req_decode ========= [12:31:00] [PASSED] DP_ENUM_PATH_RESOURCES with port number [12:31:00] [PASSED] DP_POWER_UP_PHY with port number [12:31:00] [PASSED] DP_POWER_DOWN_PHY with port number [12:31:00] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks [12:31:00] [PASSED] DP_ALLOCATE_PAYLOAD with port number [12:31:00] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI [12:31:00] [PASSED] DP_ALLOCATE_PAYLOAD with PBN [12:31:00] [PASSED] DP_QUERY_PAYLOAD with port number [12:31:00] [PASSED] DP_QUERY_PAYLOAD with VCPI [12:31:00] [PASSED] DP_REMOTE_DPCD_READ with port number [12:31:00] [PASSED] DP_REMOTE_DPCD_READ with DPCD address [12:31:00] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes [12:31:00] [PASSED] DP_REMOTE_DPCD_WRITE with port number [12:31:00] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address [12:31:00] [PASSED] DP_REMOTE_DPCD_WRITE with data array [12:31:00] [PASSED] DP_REMOTE_I2C_READ with port number [12:31:00] [PASSED] DP_REMOTE_I2C_READ with I2C device ID [12:31:00] [PASSED] DP_REMOTE_I2C_READ with transactions array [12:31:00] [PASSED] DP_REMOTE_I2C_WRITE with port number [12:31:00] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID [12:31:00] [PASSED] DP_REMOTE_I2C_WRITE with data array [12:31:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID [12:31:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID [12:31:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event [12:31:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event [12:31:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior [12:31:00] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior [12:31:00] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode ===== [12:31:00] ================ [PASSED] drm_dp_mst_helper ================ [12:31:00] ================== drm_exec (7 subtests) =================== [12:31:00] [PASSED] sanitycheck [12:31:00] [PASSED] test_lock [12:31:00] [PASSED] test_lock_unlock [12:31:00] [PASSED] test_duplicates [12:31:00] [PASSED] test_prepare [12:31:00] [PASSED] test_prepare_array [12:31:00] [PASSED] test_multiple_loops [12:31:00] ==================== [PASSED] drm_exec ===================== [12:31:00] =========== drm_format_helper_test (17 subtests) =========== [12:31:00] ============== drm_test_fb_xrgb8888_to_gray8 ============== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ========== [12:31:00] ============= drm_test_fb_xrgb8888_to_rgb332 ============== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ========== [12:31:00] ============= drm_test_fb_xrgb8888_to_rgb565 ============== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ========== [12:31:00] ============ drm_test_fb_xrgb8888_to_xrgb1555 ============= [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 ========= [12:31:00] ============ drm_test_fb_xrgb8888_to_argb1555 ============= [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 ========= [12:31:00] ============ drm_test_fb_xrgb8888_to_rgba5551 ============= [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 ========= [12:31:00] ============= drm_test_fb_xrgb8888_to_rgb888 ============== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ========== [12:31:00] ============= drm_test_fb_xrgb8888_to_bgr888 ============== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ========== [12:31:00] ============ drm_test_fb_xrgb8888_to_argb8888 ============= [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 ========= [12:31:00] =========== drm_test_fb_xrgb8888_to_xrgb2101010 =========== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 ======= [12:31:00] =========== drm_test_fb_xrgb8888_to_argb2101010 =========== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 ======= [12:31:00] ============== drm_test_fb_xrgb8888_to_mono =============== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ========== [PASSED] drm_test_fb_xrgb8888_to_mono =========== [12:31:00] ==================== drm_test_fb_swab ===================== [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ================ [PASSED] drm_test_fb_swab ================= [12:31:00] ============ drm_test_fb_xrgb8888_to_xbgr8888 ============= [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 ========= [12:31:00] ============ drm_test_fb_xrgb8888_to_abgr8888 ============= [12:31:00] [PASSED] single_pixel_source_buffer [12:31:00] [PASSED] single_pixel_clip_rectangle [12:31:00] [PASSED] well_known_colors [12:31:00] [PASSED] destination_pitch [12:31:00] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 ========= [12:31:00] ================= drm_test_fb_clip_offset ================= [12:31:00] [PASSED] pass through [12:31:00] [PASSED] horizontal offset [12:31:00] [PASSED] vertical offset [12:31:00] [PASSED] horizontal and vertical offset [12:31:00] [PASSED] horizontal offset (custom pitch) [12:31:00] [PASSED] vertical offset (custom pitch) [12:31:00] [PASSED] horizontal and vertical offset (custom pitch) [12:31:00] ============= [PASSED] drm_test_fb_clip_offset ============= [12:31:00] =================== drm_test_fb_memcpy ==================== [12:31:00] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258) [12:31:00] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258) [12:31:00] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559) [12:31:00] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258) [12:31:00] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258) [12:31:00] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559) [12:31:00] [PASSED] well_known_colors: XB24 little-endian (0x34324258) [12:31:00] [PASSED] well_known_colors: XRA8 little-endian (0x38415258) [12:31:00] [PASSED] well_known_colors: YU24 little-endian (0x34325559) [12:31:00] [PASSED] destination_pitch: XB24 little-endian (0x34324258) [12:31:00] [PASSED] destination_pitch: XRA8 little-endian (0x38415258) [12:31:00] [PASSED] destination_pitch: YU24 little-endian (0x34325559) [12:31:00] =============== [PASSED] drm_test_fb_memcpy ================ [12:31:00] ============= [PASSED] drm_format_helper_test ============== [12:31:00] ================= drm_format (18 subtests) ================= [12:31:00] [PASSED] drm_test_format_block_width_invalid [12:31:00] [PASSED] drm_test_format_block_width_one_plane [12:31:00] [PASSED] drm_test_format_block_width_two_plane [12:31:00] [PASSED] drm_test_format_block_width_three_plane [12:31:00] [PASSED] drm_test_format_block_width_tiled [12:31:00] [PASSED] drm_test_format_block_height_invalid [12:31:00] [PASSED] drm_test_format_block_height_one_plane [12:31:00] [PASSED] drm_test_format_block_height_two_plane [12:31:00] [PASSED] drm_test_format_block_height_three_plane [12:31:00] [PASSED] drm_test_format_block_height_tiled [12:31:00] [PASSED] drm_test_format_min_pitch_invalid [12:31:00] [PASSED] drm_test_format_min_pitch_one_plane_8bpp [12:31:00] [PASSED] drm_test_format_min_pitch_one_plane_16bpp [12:31:00] [PASSED] drm_test_format_min_pitch_one_plane_24bpp [12:31:00] [PASSED] drm_test_format_min_pitch_one_plane_32bpp [12:31:00] [PASSED] drm_test_format_min_pitch_two_plane [12:31:00] [PASSED] drm_test_format_min_pitch_three_plane_8bpp [12:31:00] [PASSED] drm_test_format_min_pitch_tiled [12:31:00] =================== [PASSED] drm_format ==================== [12:31:00] ============== drm_framebuffer (10 subtests) =============== [12:31:00] ========== drm_test_framebuffer_check_src_coords ========== [12:31:00] [PASSED] Success: source fits into fb [12:31:00] [PASSED] Fail: overflowing fb with x-axis coordinate [12:31:00] [PASSED] Fail: overflowing fb with y-axis coordinate [12:31:00] [PASSED] Fail: overflowing fb with source width [12:31:00] [PASSED] Fail: overflowing fb with source height [12:31:00] ====== [PASSED] drm_test_framebuffer_check_src_coords ====== [12:31:00] [PASSED] drm_test_framebuffer_cleanup [12:31:00] =============== drm_test_framebuffer_create =============== [12:31:00] [PASSED] ABGR8888 normal sizes [12:31:00] [PASSED] ABGR8888 max sizes [12:31:00] [PASSED] ABGR8888 pitch greater than min required [12:31:00] [PASSED] ABGR8888 pitch less than min required [12:31:00] [PASSED] ABGR8888 Invalid width [12:31:00] [PASSED] ABGR8888 Invalid buffer handle [12:31:00] [PASSED] No pixel format [12:31:00] [PASSED] ABGR8888 Width 0 [12:31:00] [PASSED] ABGR8888 Height 0 [12:31:00] [PASSED] ABGR8888 Out of bound height * pitch combination [12:31:00] [PASSED] ABGR8888 Large buffer offset [12:31:00] [PASSED] ABGR8888 Buffer offset for inexistent plane [12:31:00] [PASSED] ABGR8888 Invalid flag [12:31:00] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers [12:31:00] [PASSED] ABGR8888 Valid buffer modifier [12:31:00] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE) [12:31:00] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS [12:31:00] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS [12:31:00] [PASSED] NV12 Normal sizes [12:31:00] [PASSED] NV12 Max sizes [12:31:00] [PASSED] NV12 Invalid pitch [12:31:00] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag [12:31:00] [PASSED] NV12 different modifier per-plane [12:31:00] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE [12:31:00] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS [12:31:00] [PASSED] NV12 Modifier for inexistent plane [12:31:00] [PASSED] NV12 Handle for inexistent plane [12:31:00] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS [12:31:00] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier [12:31:00] [PASSED] YVU420 Normal sizes [12:31:00] [PASSED] YVU420 Max sizes [12:31:00] [PASSED] YVU420 Invalid pitch [12:31:00] [PASSED] YVU420 Different pitches [12:31:00] [PASSED] YVU420 Different buffer offsets/pitches [12:31:00] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS [12:31:00] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS [12:31:00] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS [12:31:00] [PASSED] YVU420 Valid modifier [12:31:00] [PASSED] YVU420 Different modifiers per plane [12:31:00] [PASSED] YVU420 Modifier for inexistent plane [12:31:00] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR) [12:31:00] [PASSED] X0L2 Normal sizes [12:31:00] [PASSED] X0L2 Max sizes [12:31:00] [PASSED] X0L2 Invalid pitch [12:31:00] [PASSED] X0L2 Pitch greater than minimum required [12:31:00] [PASSED] X0L2 Handle for inexistent plane [12:31:00] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set [12:31:00] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set [12:31:00] [PASSED] X0L2 Valid modifier [12:31:00] [PASSED] X0L2 Modifier for inexistent plane [12:31:00] =========== [PASSED] drm_test_framebuffer_create =========== [12:31:00] [PASSED] drm_test_framebuffer_free [12:31:00] [PASSED] drm_test_framebuffer_init [12:31:00] [PASSED] drm_test_framebuffer_init_bad_format [12:31:00] [PASSED] drm_test_framebuffer_init_dev_mismatch [12:31:00] [PASSED] drm_test_framebuffer_lookup [12:31:00] [PASSED] drm_test_framebuffer_lookup_inexistent [12:31:00] [PASSED] drm_test_framebuffer_modifiers_not_supported [12:31:00] ================= [PASSED] drm_framebuffer ================= [12:31:00] ================ drm_gem_shmem (8 subtests) ================ [12:31:00] [PASSED] drm_gem_shmem_test_obj_create [12:31:00] [PASSED] drm_gem_shmem_test_obj_create_private [12:31:00] [PASSED] drm_gem_shmem_test_pin_pages [12:31:00] [PASSED] drm_gem_shmem_test_vmap [12:31:00] [PASSED] drm_gem_shmem_test_get_pages_sgt [12:31:00] [PASSED] drm_gem_shmem_test_get_sg_table [12:31:00] [PASSED] drm_gem_shmem_test_madvise [12:31:00] [PASSED] drm_gem_shmem_test_purge [12:31:00] ================== [PASSED] drm_gem_shmem ================== [12:31:00] === drm_atomic_helper_connector_hdmi_check (27 subtests) === [12:31:00] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode [12:31:00] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1 [12:31:00] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode [12:31:00] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1 [12:31:00] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode [12:31:00] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1 [12:31:00] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 ======= [12:31:00] [PASSED] Automatic [12:31:00] [PASSED] Full [12:31:00] [PASSED] Limited 16:235 [12:31:00] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 === [12:31:00] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed [12:31:00] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed [12:31:00] [PASSED] drm_test_check_disable_connector [12:31:00] [PASSED] drm_test_check_hdmi_funcs_reject_rate [12:31:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb [12:31:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420 [12:31:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422 [12:31:00] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420 [12:31:00] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420 [12:31:00] [PASSED] drm_test_check_output_bpc_crtc_mode_changed [12:31:00] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed [12:31:00] [PASSED] drm_test_check_output_bpc_dvi [12:31:00] [PASSED] drm_test_check_output_bpc_format_vic_1 [12:31:00] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only [12:31:00] [PASSED] drm_test_check_output_bpc_format_display_rgb_only [12:31:00] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only [12:31:00] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only [12:31:00] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc [12:31:00] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc [12:31:00] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc [12:31:00] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ====== [12:31:00] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ==== [12:31:00] [PASSED] drm_test_check_broadcast_rgb_value [12:31:00] [PASSED] drm_test_check_bpc_8_value [12:31:00] [PASSED] drm_test_check_bpc_10_value [12:31:00] [PASSED] drm_test_check_bpc_12_value [12:31:00] [PASSED] drm_test_check_format_value [12:31:00] [PASSED] drm_test_check_tmds_char_value [12:31:00] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ====== [12:31:00] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) = [12:31:00] [PASSED] drm_test_check_mode_valid [12:31:00] [PASSED] drm_test_check_mode_valid_reject [12:31:00] [PASSED] drm_test_check_mode_valid_reject_rate [12:31:00] [PASSED] drm_test_check_mode_valid_reject_max_clock [12:31:00] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid === [12:31:00] ================= drm_managed (2 subtests) ================= [12:31:00] [PASSED] drm_test_managed_release_action [12:31:00] [PASSED] drm_test_managed_run_action [12:31:00] =================== [PASSED] drm_managed =================== [12:31:00] =================== drm_mm (6 subtests) ==================== [12:31:00] [PASSED] drm_test_mm_init [12:31:00] [PASSED] drm_test_mm_debug [12:31:00] [PASSED] drm_test_mm_align32 [12:31:00] [PASSED] drm_test_mm_align64 [12:31:00] [PASSED] drm_test_mm_lowest [12:31:00] [PASSED] drm_test_mm_highest [12:31:00] ===================== [PASSED] drm_mm ====================== [12:31:00] ============= drm_modes_analog_tv (5 subtests) ============= [12:31:00] [PASSED] drm_test_modes_analog_tv_mono_576i [12:31:00] [PASSED] drm_test_modes_analog_tv_ntsc_480i [12:31:00] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined [12:31:00] [PASSED] drm_test_modes_analog_tv_pal_576i [12:31:00] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined [12:31:00] =============== [PASSED] drm_modes_analog_tv =============== [12:31:00] ============== drm_plane_helper (2 subtests) =============== [12:31:00] =============== drm_test_check_plane_state ================ [12:31:00] [PASSED] clipping_simple [12:31:00] [PASSED] clipping_rotate_reflect [12:31:00] [PASSED] positioning_simple [12:31:00] [PASSED] upscaling [12:31:00] [PASSED] downscaling [12:31:00] [PASSED] rounding1 [12:31:00] [PASSED] rounding2 [12:31:00] [PASSED] rounding3 [12:31:00] [PASSED] rounding4 [12:31:00] =========== [PASSED] drm_test_check_plane_state ============ [12:31:00] =========== drm_test_check_invalid_plane_state ============ [12:31:00] [PASSED] positioning_invalid [12:31:00] [PASSED] upscaling_invalid [12:31:00] [PASSED] downscaling_invalid [12:31:00] ======= [PASSED] drm_test_check_invalid_plane_state ======== [12:31:00] ================ [PASSED] drm_plane_helper ================= [12:31:00] ====== drm_connector_helper_tv_get_modes (1 subtest) ======= [12:31:00] ====== drm_test_connector_helper_tv_get_modes_check ======= [12:31:00] [PASSED] None [12:31:00] [PASSED] PAL [12:31:00] [PASSED] NTSC [12:31:00] [PASSED] Both, NTSC Default [12:31:00] [PASSED] Both, PAL Default [12:31:00] [PASSED] Both, NTSC Default, with PAL on command-line [12:31:00] [PASSED] Both, PAL Default, with NTSC on command-line [12:31:00] == [PASSED] drm_test_connector_helper_tv_get_modes_check === [12:31:00] ======== [PASSED] drm_connector_helper_tv_get_modes ======== [12:31:00] ================== drm_rect (9 subtests) =================== [12:31:00] [PASSED] drm_test_rect_clip_scaled_div_by_zero [12:31:00] [PASSED] drm_test_rect_clip_scaled_not_clipped [12:31:00] [PASSED] drm_test_rect_clip_scaled_clipped [12:31:00] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned [12:31:00] ================= drm_test_rect_intersect ================= [12:31:00] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0 [12:31:00] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1 [12:31:00] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0 [12:31:00] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1 [12:31:00] [PASSED] right x left: 2x1+0+0 x 3x1+1+0 [12:31:00] [PASSED] left x right: 3x1+1+0 x 2x1+0+0 [12:31:00] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1 [12:31:00] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0 [12:31:00] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1 [12:31:00] [PASSED] touching side: 1x1+0+0 x 1x1+1+0 [12:31:00] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0 [12:31:00] [PASSED] inside another: 2x2+0+0 x 1x1+1+1 [12:31:00] [PASSED] far away: 1x1+0+0 x 1x1+3+6 [12:31:00] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10 [12:31:00] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10 [12:31:00] ============= [PASSED] drm_test_rect_intersect ============= [12:31:00] ================ drm_test_rect_calc_hscale ================ [12:31:00] [PASSED] normal use [12:31:00] [PASSED] out of max range [12:31:00] [PASSED] out of min range [12:31:00] [PASSED] zero dst [12:31:00] [PASSED] negative src [12:31:00] [PASSED] negative dst [12:31:00] ============ [PASSED] drm_test_rect_calc_hscale ============ [12:31:00] ================ drm_test_rect_calc_vscale ================ [12:31:00] [PASSED] normal use stty: 'standard input': Inappropriate ioctl for device [12:31:00] [PASSED] out of max range [12:31:00] [PASSED] out of min range [12:31:00] [PASSED] zero dst [12:31:00] [PASSED] negative src [12:31:00] [PASSED] negative dst [12:31:00] ============ [PASSED] drm_test_rect_calc_vscale ============ [12:31:00] ================== drm_test_rect_rotate =================== [12:31:00] [PASSED] reflect-x [12:31:00] [PASSED] reflect-y [12:31:00] [PASSED] rotate-0 [12:31:00] [PASSED] rotate-90 [12:31:00] [PASSED] rotate-180 [12:31:00] [PASSED] rotate-270 [12:31:00] ============== [PASSED] drm_test_rect_rotate =============== [12:31:00] ================ drm_test_rect_rotate_inv ================= [12:31:00] [PASSED] reflect-x [12:31:00] [PASSED] reflect-y [12:31:00] [PASSED] rotate-0 [12:31:00] [PASSED] rotate-90 [12:31:00] [PASSED] rotate-180 [12:31:00] [PASSED] rotate-270 [12:31:00] ============ [PASSED] drm_test_rect_rotate_inv ============= [12:31:00] ==================== [PASSED] drm_rect ===================== [12:31:00] ============ drm_sysfb_modeset_test (1 subtest) ============ [12:31:00] ============ drm_test_sysfb_build_fourcc_list ============= [12:31:00] [PASSED] no native formats [12:31:00] [PASSED] XRGB8888 as native format [12:31:00] [PASSED] remove duplicates [12:31:00] [PASSED] convert alpha formats [12:31:00] [PASSED] random formats [12:31:00] ======== [PASSED] drm_test_sysfb_build_fourcc_list ========= [12:31:00] ============= [PASSED] drm_sysfb_modeset_test ============== [12:31:00] ============================================================ [12:31:00] Testing complete. Ran 622 tests: passed: 622 [12:31:00] Elapsed time: 26.867s total, 1.700s configuring, 24.694s building, 0.445s running + /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig [12:31:00] Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=um O=.kunit olddefconfig [12:31:02] Building KUnit Kernel ... Populating config with: $ make ARCH=um O=.kunit olddefconfig Building with: $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48 [12:31:11] Starting KUnit Kernel (1/1)... [12:31:11] ============================================================ Running tests with: $ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt [12:31:11] ================= ttm_device (5 subtests) ================== [12:31:11] [PASSED] ttm_device_init_basic [12:31:11] [PASSED] ttm_device_init_multiple [12:31:11] [PASSED] ttm_device_fini_basic [12:31:11] [PASSED] ttm_device_init_no_vma_man [12:31:11] ================== ttm_device_init_pools ================== [12:31:11] [PASSED] No DMA allocations, no DMA32 required [12:31:11] [PASSED] DMA allocations, DMA32 required [12:31:11] [PASSED] No DMA allocations, DMA32 required [12:31:11] [PASSED] DMA allocations, no DMA32 required [12:31:11] ============== [PASSED] ttm_device_init_pools ============== [12:31:11] =================== [PASSED] ttm_device ==================== [12:31:11] ================== ttm_pool (8 subtests) =================== [12:31:11] ================== ttm_pool_alloc_basic =================== [12:31:11] [PASSED] One page [12:31:11] [PASSED] More than one page [12:31:11] [PASSED] Above the allocation limit [12:31:11] [PASSED] One page, with coherent DMA mappings enabled [12:31:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [12:31:11] ============== [PASSED] ttm_pool_alloc_basic =============== [12:31:11] ============== ttm_pool_alloc_basic_dma_addr ============== [12:31:11] [PASSED] One page [12:31:11] [PASSED] More than one page [12:31:11] [PASSED] Above the allocation limit [12:31:11] [PASSED] One page, with coherent DMA mappings enabled [12:31:11] [PASSED] Above the allocation limit, with coherent DMA mappings enabled [12:31:11] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ========== [12:31:11] [PASSED] ttm_pool_alloc_order_caching_match [12:31:11] [PASSED] ttm_pool_alloc_caching_mismatch [12:31:11] [PASSED] ttm_pool_alloc_order_mismatch [12:31:11] [PASSED] ttm_pool_free_dma_alloc [12:31:11] [PASSED] ttm_pool_free_no_dma_alloc [12:31:11] [PASSED] ttm_pool_fini_basic [12:31:11] ==================== [PASSED] ttm_pool ===================== [12:31:11] ================ ttm_resource (8 subtests) ================= [12:31:11] ================= ttm_resource_init_basic ================= [12:31:11] [PASSED] Init resource in TTM_PL_SYSTEM [12:31:11] [PASSED] Init resource in TTM_PL_VRAM [12:31:11] [PASSED] Init resource in a private placement [12:31:11] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags [12:31:11] ============= [PASSED] ttm_resource_init_basic ============= [12:31:11] [PASSED] ttm_resource_init_pinned [12:31:11] [PASSED] ttm_resource_fini_basic [12:31:11] [PASSED] ttm_resource_manager_init_basic [12:31:11] [PASSED] ttm_resource_manager_usage_basic [12:31:11] [PASSED] ttm_resource_manager_set_used_basic [12:31:11] [PASSED] ttm_sys_man_alloc_basic [12:31:11] [PASSED] ttm_sys_man_free_basic [12:31:11] ================== [PASSED] ttm_resource =================== [12:31:11] =================== ttm_tt (15 subtests) =================== [12:31:11] ==================== ttm_tt_init_basic ==================== [12:31:11] [PASSED] Page-aligned size [12:31:11] [PASSED] Extra pages requested [12:31:11] ================ [PASSED] ttm_tt_init_basic ================ [12:31:11] [PASSED] ttm_tt_init_misaligned [12:31:11] [PASSED] ttm_tt_fini_basic [12:31:11] [PASSED] ttm_tt_fini_sg [12:31:11] [PASSED] ttm_tt_fini_shmem [12:31:11] [PASSED] ttm_tt_create_basic [12:31:11] [PASSED] ttm_tt_create_invalid_bo_type [12:31:11] [PASSED] ttm_tt_create_ttm_exists [12:31:11] [PASSED] ttm_tt_create_failed [12:31:11] [PASSED] ttm_tt_destroy_basic [12:31:11] [PASSED] ttm_tt_populate_null_ttm [12:31:11] [PASSED] ttm_tt_populate_populated_ttm [12:31:11] [PASSED] ttm_tt_unpopulate_basic [12:31:11] [PASSED] ttm_tt_unpopulate_empty_ttm [12:31:11] [PASSED] ttm_tt_swapin_basic [12:31:11] ===================== [PASSED] ttm_tt ====================== [12:31:11] =================== ttm_bo (14 subtests) =================== [12:31:11] =========== ttm_bo_reserve_optimistic_no_ticket =========== [12:31:11] [PASSED] Cannot be interrupted and sleeps [12:31:11] [PASSED] Cannot be interrupted, locks straight away [12:31:11] [PASSED] Can be interrupted, sleeps [12:31:11] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket ======= [12:31:11] [PASSED] ttm_bo_reserve_locked_no_sleep [12:31:11] [PASSED] ttm_bo_reserve_no_wait_ticket [12:31:11] [PASSED] ttm_bo_reserve_double_resv [12:31:11] [PASSED] ttm_bo_reserve_interrupted [12:31:11] [PASSED] ttm_bo_reserve_deadlock [12:31:11] [PASSED] ttm_bo_unreserve_basic [12:31:11] [PASSED] ttm_bo_unreserve_pinned [12:31:11] [PASSED] ttm_bo_unreserve_bulk [12:31:11] [PASSED] ttm_bo_fini_basic [12:31:11] [PASSED] ttm_bo_fini_shared_resv [12:31:11] [PASSED] ttm_bo_pin_basic [12:31:11] [PASSED] ttm_bo_pin_unpin_resource [12:31:11] [PASSED] ttm_bo_multiple_pin_one_unpin [12:31:11] ===================== [PASSED] ttm_bo ====================== [12:31:11] ============== ttm_bo_validate (21 subtests) =============== [12:31:11] ============== ttm_bo_init_reserved_sys_man =============== [12:31:11] [PASSED] Buffer object for userspace [12:31:11] [PASSED] Kernel buffer object [12:31:11] [PASSED] Shared buffer object [12:31:11] ========== [PASSED] ttm_bo_init_reserved_sys_man =========== [12:31:11] ============== ttm_bo_init_reserved_mock_man ============== [12:31:11] [PASSED] Buffer object for userspace [12:31:11] [PASSED] Kernel buffer object [12:31:11] [PASSED] Shared buffer object [12:31:11] ========== [PASSED] ttm_bo_init_reserved_mock_man ========== [12:31:11] [PASSED] ttm_bo_init_reserved_resv [12:31:11] ================== ttm_bo_validate_basic ================== [12:31:11] [PASSED] Buffer object for userspace [12:31:11] [PASSED] Kernel buffer object [12:31:11] [PASSED] Shared buffer object [12:31:11] ============== [PASSED] ttm_bo_validate_basic ============== [12:31:11] [PASSED] ttm_bo_validate_invalid_placement [12:31:11] ============= ttm_bo_validate_same_placement ============== [12:31:11] [PASSED] System manager [12:31:11] [PASSED] VRAM manager [12:31:11] ========= [PASSED] ttm_bo_validate_same_placement ========== [12:31:11] [PASSED] ttm_bo_validate_failed_alloc [12:31:11] [PASSED] ttm_bo_validate_pinned [12:31:11] [PASSED] ttm_bo_validate_busy_placement [12:31:11] ================ ttm_bo_validate_multihop ================= [12:31:11] [PASSED] Buffer object for userspace [12:31:11] [PASSED] Kernel buffer object [12:31:11] [PASSED] Shared buffer object [12:31:11] ============ [PASSED] ttm_bo_validate_multihop ============= [12:31:11] ========== ttm_bo_validate_no_placement_signaled ========== [12:31:11] [PASSED] Buffer object in system domain, no page vector [12:31:11] [PASSED] Buffer object in system domain with an existing page vector [12:31:11] ====== [PASSED] ttm_bo_validate_no_placement_signaled ====== [12:31:11] ======== ttm_bo_validate_no_placement_not_signaled ======== [12:31:11] [PASSED] Buffer object for userspace [12:31:11] [PASSED] Kernel buffer object [12:31:11] [PASSED] Shared buffer object [12:31:11] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ==== [12:31:11] [PASSED] ttm_bo_validate_move_fence_signaled [12:31:11] ========= ttm_bo_validate_move_fence_not_signaled ========= [12:31:11] [PASSED] Waits for GPU [12:31:11] [PASSED] Tries to lock straight away [12:31:11] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled ===== [12:31:11] [PASSED] ttm_bo_validate_happy_evict [12:31:11] [PASSED] ttm_bo_validate_all_pinned_evict [12:31:11] [PASSED] ttm_bo_validate_allowed_only_evict [12:31:11] [PASSED] ttm_bo_validate_deleted_evict [12:31:11] [PASSED] ttm_bo_validate_busy_domain_evict [12:31:11] [PASSED] ttm_bo_validate_evict_gutting [12:31:11] [PASSED] ttm_bo_validate_recrusive_evict stty: 'standard input': Inappropriate ioctl for device [12:31:11] ================= [PASSED] ttm_bo_validate ================= [12:31:11] ============================================================ [12:31:11] Testing complete. Ran 101 tests: passed: 101 [12:31:11] Elapsed time: 11.139s total, 1.670s configuring, 9.253s building, 0.181s running + cleanup ++ stat -c %u:%g /kernel + chown -R 1003:1003 /kernel ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✓ Xe.CI.BAT: success for VF double migration (rev4) 2025-11-18 11:41 [PATCH v4 0/3] VF double migration Satyanarayana K V P ` (3 preceding siblings ...) 2025-11-18 12:31 ` ✓ CI.KUnit: success for VF double migration (rev4) Patchwork @ 2025-11-18 13:09 ` Patchwork 2025-11-18 15:19 ` ✗ Xe.CI.Full: failure " Patchwork 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2025-11-18 13:09 UTC (permalink / raw) To: Satyanarayana K V P; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 2405 bytes --] == Series Details == Series: VF double migration (rev4) URL : https://patchwork.freedesktop.org/series/156339/ State : success == Summary == CI Bug Log - changes from xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8_BAT -> xe-pw-156339v4_BAT ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (13 -> 13) ------------------------------ No changes in participating hosts Known issues ------------ Here are the changes found in xe-pw-156339v4_BAT that come from known issues: ### IGT changes ### #### Issues hit #### * igt@xe_waitfence@reltime: - bat-dg2-oem2: [PASS][1] -> [FAIL][2] ([Intel XE#6520]) [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/bat-dg2-oem2/igt@xe_waitfence@reltime.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/bat-dg2-oem2/igt@xe_waitfence@reltime.html #### Possible fixes #### * igt@xe_waitfence@abstime: - bat-dg2-oem2: [TIMEOUT][3] ([Intel XE#6506]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/bat-dg2-oem2/igt@xe_waitfence@abstime.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/bat-dg2-oem2/igt@xe_waitfence@abstime.html * igt@xe_waitfence@engine: - bat-dg2-oem2: [FAIL][5] ([Intel XE#6519]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/bat-dg2-oem2/igt@xe_waitfence@engine.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/bat-dg2-oem2/igt@xe_waitfence@engine.html [Intel XE#6506]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6506 [Intel XE#6519]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6519 [Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520 Build changes ------------- * IGT: IGT_8629 -> IGT_8630 * Linux: xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8 -> xe-pw-156339v4 IGT_8629: 3813b62c3c6200f69d6cc8be1c5e621243ace24f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8630: 8630 xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8: 91fc6d984707c9bfd4a60550e6a85f1a991e7ec8 xe-pw-156339v4: 156339v4 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/index.html [-- Attachment #2: Type: text/html, Size: 3040 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* ✗ Xe.CI.Full: failure for VF double migration (rev4) 2025-11-18 11:41 [PATCH v4 0/3] VF double migration Satyanarayana K V P ` (4 preceding siblings ...) 2025-11-18 13:09 ` ✓ Xe.CI.BAT: " Patchwork @ 2025-11-18 15:19 ` Patchwork 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2025-11-18 15:19 UTC (permalink / raw) To: Satyanarayana K V P; +Cc: intel-xe [-- Attachment #1: Type: text/plain, Size: 75885 bytes --] == Series Details == Series: VF double migration (rev4) URL : https://patchwork.freedesktop.org/series/156339/ State : failure == Summary == CI Bug Log - changes from xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8_FULL -> xe-pw-156339v4_FULL ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with xe-pw-156339v4_FULL absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in xe-pw-156339v4_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (4 -> 4) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in xe-pw-156339v4_FULL: ### IGT changes ### #### Possible regressions #### * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions: - shard-adlp: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-1/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-3/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html * igt@xe_pmu@gt-frequency: - shard-bmg: [PASS][3] -> [WARN][4] +1 other test warn [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-7/igt@xe_pmu@gt-frequency.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@xe_pmu@gt-frequency.html Known issues ------------ Here are the changes found in xe-pw-156339v4_FULL that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_async_flips@alternate-sync-async-flip-atomic: - shard-bmg: [PASS][5] -> [FAIL][6] ([Intel XE#3718] / [Intel XE#6078]) [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_async_flips@alternate-sync-async-flip-atomic.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@kms_async_flips@alternate-sync-async-flip-atomic.html * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-d-dp-2: - shard-bmg: NOTRUN -> [FAIL][7] ([Intel XE#6078]) [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-d-dp-2.html * igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1: - shard-lnl: [PASS][8] -> [FAIL][9] ([Intel XE#5993]) +3 other tests fail [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html * igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-a-dp-4-x: - shard-dg2-set2: [PASS][10] -> [INCOMPLETE][11] ([Intel XE#4912]) +1 other test incomplete [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-a-dp-4-x.html [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@kms_async_flips@async-flip-with-page-flip-events-tiled-atomic@pipe-a-dp-4-x.html * igt@kms_big_fb@4-tiled-8bpp-rotate-90: - shard-dg2-set2: NOTRUN -> [SKIP][12] ([Intel XE#316]) +1 other test skip [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-433/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html * igt@kms_big_fb@4-tiled-addfb: - shard-adlp: NOTRUN -> [SKIP][13] ([Intel XE#619]) [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-2/igt@kms_big_fb@4-tiled-addfb.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0: - shard-adlp: NOTRUN -> [SKIP][14] ([Intel XE#1124]) +1 other test skip [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html * igt@kms_big_fb@y-tiled-addfb: - shard-dg2-set2: NOTRUN -> [SKIP][15] ([Intel XE#619]) [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-435/igt@kms_big_fb@y-tiled-addfb.html * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip: - shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#1124]) +1 other test skip [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html * igt@kms_big_fb@yf-tiled-64bpp-rotate-180: - shard-dg2-set2: NOTRUN -> [SKIP][17] ([Intel XE#1124]) +6 other tests skip [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html * igt@kms_big_fb@yf-tiled-8bpp-rotate-0: - shard-lnl: NOTRUN -> [SKIP][18] ([Intel XE#1124]) +3 other tests skip [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html * igt@kms_bw@linear-tiling-4-displays-1920x1080p: - shard-dg2-set2: NOTRUN -> [SKIP][19] ([Intel XE#367]) +1 other test skip [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1: - shard-adlp: NOTRUN -> [SKIP][20] ([Intel XE#455] / [Intel XE#787]) +5 other tests skip [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-4/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1.html * igt@kms_ccs@bad-pixel-format-yf-tiled-ccs: - shard-dg2-set2: NOTRUN -> [SKIP][21] ([Intel XE#455] / [Intel XE#787]) +17 other tests skip [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs.html - shard-lnl: NOTRUN -> [SKIP][22] ([Intel XE#2887]) +5 other tests skip [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs.html * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs: - shard-adlp: NOTRUN -> [SKIP][23] ([Intel XE#3442]) [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html - shard-dg2-set2: NOTRUN -> [SKIP][24] ([Intel XE#3442]) [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1: - shard-lnl: NOTRUN -> [SKIP][25] ([Intel XE#2669] / [Intel XE#3433]) +3 other tests skip [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-a-edp-1.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs: - shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2887]) +1 other test skip [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-2/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-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-156339v4/shard-adlp-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-1.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-6: - shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#787]) +62 other tests skip [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-6.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6: - shard-dg2-set2: NOTRUN -> [INCOMPLETE][29] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168]) [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs: - shard-dg2-set2: [PASS][30] -> [INCOMPLETE][31] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168]) [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4: - shard-dg2-set2: [PASS][32] -> [INCOMPLETE][33] ([Intel XE#6168]) [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4.html [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6: - shard-dg2-set2: [PASS][34] -> [DMESG-WARN][35] ([Intel XE#1727] / [Intel XE#3113]) [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6.html [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6.html * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2: - shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-7/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2.html * igt@kms_chamelium_color@ctm-0-25: - shard-adlp: NOTRUN -> [SKIP][37] ([Intel XE#306]) [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-4/igt@kms_chamelium_color@ctm-0-25.html - shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#306]) [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-8/igt@kms_chamelium_color@ctm-0-25.html * igt@kms_chamelium_color@ctm-green-to-red: - shard-dg2-set2: NOTRUN -> [SKIP][39] ([Intel XE#306]) [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@kms_chamelium_color@ctm-green-to-red.html * igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats: - shard-dg2-set2: NOTRUN -> [SKIP][40] ([Intel XE#373]) +5 other tests skip [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html * igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate: - shard-adlp: NOTRUN -> [SKIP][41] ([Intel XE#373]) +1 other test skip [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-4/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html - shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#2252]) +1 other test skip [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-2/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html - shard-lnl: NOTRUN -> [SKIP][43] ([Intel XE#373]) +3 other tests skip [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-5/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html * igt@kms_content_protection@dp-mst-type-1: - shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#2390]) [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-7/igt@kms_content_protection@dp-mst-type-1.html - shard-adlp: NOTRUN -> [SKIP][45] ([Intel XE#307]) [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@kms_content_protection@dp-mst-type-1.html - shard-dg2-set2: NOTRUN -> [SKIP][46] ([Intel XE#307]) +1 other test skip [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@kms_content_protection@dp-mst-type-1.html - shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#307]) +1 other test skip [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_content_protection@dp-mst-type-1.html * igt@kms_cursor_crc@cursor-rapid-movement-256x85: - shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#1424]) [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-5/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic: - shard-lnl: NOTRUN -> [SKIP][49] ([Intel XE#309]) +1 other test skip [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-3/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic: - shard-bmg: [PASS][50] -> [SKIP][51] ([Intel XE#2291]) +3 other tests skip [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-5/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html * igt@kms_cursor_legacy@cursorb-vs-flipb-toggle: - shard-adlp: NOTRUN -> [SKIP][52] ([Intel XE#309]) [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-9/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-bmg: [PASS][53] -> [FAIL][54] ([Intel XE#1475]) [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_cursor_legacy@flip-vs-cursor-legacy: - shard-bmg: [PASS][55] -> [FAIL][56] ([Intel XE#4633]) [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html * igt@kms_display_modes@extended-mode-basic: - shard-adlp: NOTRUN -> [SKIP][57] ([Intel XE#4302]) [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-9/igt@kms_display_modes@extended-mode-basic.html - shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#4302]) [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-3/igt@kms_display_modes@extended-mode-basic.html * igt@kms_dp_linktrain_fallback@dsc-fallback: - shard-dg2-set2: NOTRUN -> [SKIP][59] ([Intel XE#4331]) [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@kms_dp_linktrain_fallback@dsc-fallback.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#4156]) [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-8/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_fbcon_fbt@psr-suspend: - shard-dg2-set2: NOTRUN -> [SKIP][61] ([Intel XE#776]) [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_feature_discovery@psr1: - shard-adlp: NOTRUN -> [SKIP][62] ([Intel XE#1135]) [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@kms_feature_discovery@psr1.html - shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#2374]) [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@kms_feature_discovery@psr1.html - shard-dg2-set2: NOTRUN -> [SKIP][64] ([Intel XE#1135]) [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_feature_discovery@psr1.html * igt@kms_flip@2x-flip-vs-blocking-wf-vblank: - shard-adlp: NOTRUN -> [SKIP][65] ([Intel XE#310]) +1 other test skip [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-4/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a6-dp4: - shard-dg2-set2: NOTRUN -> [FAIL][66] ([Intel XE#301]) +1 other test fail [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a6-dp4.html * igt@kms_flip@2x-flip-vs-panning: - shard-bmg: [PASS][67] -> [SKIP][68] ([Intel XE#2316]) +2 other tests skip [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-1/igt@kms_flip@2x-flip-vs-panning.html [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_flip@2x-flip-vs-panning.html * igt@kms_flip@2x-flip-vs-panning-vs-hang: - shard-lnl: NOTRUN -> [SKIP][69] ([Intel XE#1421]) +2 other tests skip [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@kms_flip@2x-flip-vs-panning-vs-hang.html * igt@kms_flip@flip-vs-panning-interruptible: - shard-adlp: [PASS][70] -> [DMESG-WARN][71] ([Intel XE#4543] / [Intel XE#5208]) [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-4/igt@kms_flip@flip-vs-panning-interruptible.html [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@kms_flip@flip-vs-panning-interruptible.html * igt@kms_flip@flip-vs-panning-interruptible@b-hdmi-a1: - shard-adlp: [PASS][72] -> [DMESG-WARN][73] ([Intel XE#4543]) +15 other tests dmesg-warn [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-4/igt@kms_flip@flip-vs-panning-interruptible@b-hdmi-a1.html [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@kms_flip@flip-vs-panning-interruptible@b-hdmi-a1.html * igt@kms_flip@flip-vs-suspend: - shard-bmg: [PASS][74] -> [INCOMPLETE][75] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-5/igt@kms_flip@flip-vs-suspend.html [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-2/igt@kms_flip@flip-vs-suspend.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-dg2-set2: [PASS][76] -> [INCOMPLETE][77] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-432/igt@kms_flip@flip-vs-suspend-interruptible.html [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_flip@modeset-vs-vblank-race@a-edp1: - shard-lnl: [PASS][78] -> [FAIL][79] ([Intel XE#3098]) +1 other test fail [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-2/igt@kms_flip@modeset-vs-vblank-race@a-edp1.html [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-3/igt@kms_flip@modeset-vs-vblank-race@a-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling: - shard-dg2-set2: NOTRUN -> [SKIP][80] ([Intel XE#455]) +14 other tests skip [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling: - shard-bmg: NOTRUN -> [SKIP][81] ([Intel XE#2293] / [Intel XE#2380]) [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html - shard-lnl: NOTRUN -> [SKIP][82] ([Intel XE#1401] / [Intel XE#1745]) [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode: - shard-lnl: NOTRUN -> [SKIP][83] ([Intel XE#1401]) [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-4/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode: - shard-bmg: NOTRUN -> [SKIP][84] ([Intel XE#2293]) [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html * igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x: - shard-adlp: [PASS][85] -> [DMESG-FAIL][86] ([Intel XE#4543]) +9 other tests dmesg-fail [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-8/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render: - shard-adlp: NOTRUN -> [SKIP][87] ([Intel XE#651]) +2 other tests skip [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-6/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render.html * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-blt: - shard-bmg: NOTRUN -> [SKIP][88] ([Intel XE#2311]) +6 other tests skip [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff: - shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#4141]) +2 other tests skip [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html - shard-adlp: NOTRUN -> [SKIP][90] ([Intel XE#656]) +9 other tests skip [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt: - shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#6312]) [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt.html - shard-adlp: NOTRUN -> [SKIP][92] ([Intel XE#6312]) [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-mmap-wc: - shard-dg2-set2: NOTRUN -> [SKIP][93] ([Intel XE#6312]) +4 other tests skip [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render: - shard-lnl: NOTRUN -> [SKIP][94] ([Intel XE#651]) +3 other tests skip [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt: - shard-dg2-set2: NOTRUN -> [SKIP][95] ([Intel XE#651]) +18 other tests skip [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw: - shard-adlp: NOTRUN -> [SKIP][96] ([Intel XE#653]) +2 other tests skip [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html - shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#2313]) +3 other tests skip [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt: - shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#2312]) +1 other test skip [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt: - shard-dg2-set2: NOTRUN -> [SKIP][99] ([Intel XE#653]) +25 other tests skip [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt: - shard-lnl: NOTRUN -> [SKIP][100] ([Intel XE#656]) +15 other tests skip [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-blt.html * igt@kms_hdr@brightness-with-hdr: - shard-lnl: NOTRUN -> [SKIP][101] ([Intel XE#3374] / [Intel XE#3544]) [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-5/igt@kms_hdr@brightness-with-hdr.html * igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1: - shard-lnl: NOTRUN -> [SKIP][102] ([Intel XE#1450]) +1 other test skip [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1.html * igt@kms_invalid_mode@clock-too-high@pipe-c-edp-1: - shard-lnl: NOTRUN -> [SKIP][103] ([Intel XE#1450] / [Intel XE#2568]) +1 other test skip [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@kms_invalid_mode@clock-too-high@pipe-c-edp-1.html * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b: - shard-lnl: NOTRUN -> [SKIP][104] ([Intel XE#2763]) +7 other tests skip [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-3/igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b.html * igt@kms_pm_dc@dc5-dpms: - shard-lnl: [PASS][105] -> [FAIL][106] ([Intel XE#718]) [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-5/igt@kms_pm_dc@dc5-dpms.html [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-3/igt@kms_pm_dc@dc5-dpms.html * igt@kms_pm_dc@dc5-psr: - shard-dg2-set2: NOTRUN -> [SKIP][107] ([Intel XE#1129]) [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@kms_pm_dc@dc5-psr.html * igt@kms_pm_dc@deep-pkgc: - shard-dg2-set2: NOTRUN -> [SKIP][108] ([Intel XE#908]) [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_pm_dc@deep-pkgc.html * igt@kms_pm_rpm@dpms-lpsp: - shard-bmg: NOTRUN -> [SKIP][109] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836]) [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-2/igt@kms_pm_rpm@dpms-lpsp.html * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf: - shard-adlp: NOTRUN -> [SKIP][110] ([Intel XE#1406] / [Intel XE#1489]) +1 other test skip [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf.html - shard-bmg: NOTRUN -> [SKIP][111] ([Intel XE#1406] / [Intel XE#1489]) +1 other test skip [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-7/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@pr-cursor-plane-update-sf: - shard-lnl: NOTRUN -> [SKIP][112] ([Intel XE#1406] / [Intel XE#2893]) +1 other test skip [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-8/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html * igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area: - shard-dg2-set2: NOTRUN -> [SKIP][113] ([Intel XE#1406] / [Intel XE#1489]) +1 other test skip [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-436/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html * igt@kms_psr@fbc-psr-primary-blt: - shard-adlp: NOTRUN -> [SKIP][114] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +1 other test skip [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-4/igt@kms_psr@fbc-psr-primary-blt.html * igt@kms_psr@fbc-psr-sprite-plane-onoff: - shard-dg2-set2: NOTRUN -> [SKIP][115] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +6 other tests skip [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-463/igt@kms_psr@fbc-psr-sprite-plane-onoff.html * igt@kms_psr@fbc-psr2-sprite-blt@edp-1: - shard-lnl: NOTRUN -> [SKIP][116] ([Intel XE#1406] / [Intel XE#4609]) [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_psr@fbc-psr2-sprite-blt@edp-1.html * igt@kms_psr@pr-primary-blt: - shard-lnl: NOTRUN -> [SKIP][117] ([Intel XE#1406]) +1 other test skip [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-1/igt@kms_psr@pr-primary-blt.html - shard-bmg: NOTRUN -> [SKIP][118] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-8/igt@kms_psr@pr-primary-blt.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-90: - shard-dg2-set2: NOTRUN -> [SKIP][119] ([Intel XE#3414]) [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html * igt@kms_setmode@basic: - shard-adlp: [PASS][120] -> [FAIL][121] ([Intel XE#6361]) +1 other test fail [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-3/igt@kms_setmode@basic.html [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-6/igt@kms_setmode@basic.html - shard-lnl: [PASS][122] -> [FAIL][123] ([Intel XE#6361]) +1 other test fail [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-2/igt@kms_setmode@basic.html [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@kms_setmode@basic.html * igt@kms_setmode@clone-exclusive-crtc: - shard-adlp: NOTRUN -> [SKIP][124] ([Intel XE#455]) +3 other tests skip [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-2/igt@kms_setmode@clone-exclusive-crtc.html - shard-lnl: NOTRUN -> [SKIP][125] ([Intel XE#1435]) [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-1/igt@kms_setmode@clone-exclusive-crtc.html * igt@kms_vblank@ts-continuation-suspend: - shard-adlp: [PASS][126] -> [DMESG-WARN][127] ([Intel XE#2953] / [Intel XE#4173]) +8 other tests dmesg-warn [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-4/igt@kms_vblank@ts-continuation-suspend.html [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@kms_vblank@ts-continuation-suspend.html * igt@kms_vrr@cmrr@pipe-a-edp-1: - shard-lnl: [PASS][128] -> [FAIL][129] ([Intel XE#4459]) +1 other test fail [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-4/igt@kms_vrr@cmrr@pipe-a-edp-1.html [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@kms_vrr@cmrr@pipe-a-edp-1.html * igt@xe_compute_preempt@compute-preempt-many: - shard-dg2-set2: NOTRUN -> [SKIP][130] ([Intel XE#6360]) [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_compute_preempt@compute-preempt-many.html * igt@xe_configfs@survivability-mode: - shard-dg2-set2: NOTRUN -> [SKIP][131] ([Intel XE#6010]) [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@xe_configfs@survivability-mode.html - shard-lnl: NOTRUN -> [SKIP][132] ([Intel XE#6010]) [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-8/igt@xe_configfs@survivability-mode.html - shard-adlp: NOTRUN -> [SKIP][133] ([Intel XE#6010]) [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@xe_configfs@survivability-mode.html * igt@xe_copy_basic@mem-set-linear-0xfffe: - shard-dg2-set2: NOTRUN -> [SKIP][134] ([Intel XE#1126]) +1 other test skip [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0xfffe.html - shard-adlp: NOTRUN -> [SKIP][135] ([Intel XE#1126]) [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-6/igt@xe_copy_basic@mem-set-linear-0xfffe.html * igt@xe_eudebug@basic-client-th: - shard-adlp: NOTRUN -> [SKIP][136] ([Intel XE#4837] / [Intel XE#5565]) +3 other tests skip [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-9/igt@xe_eudebug@basic-client-th.html - shard-bmg: NOTRUN -> [SKIP][137] ([Intel XE#4837]) +2 other tests skip [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@xe_eudebug@basic-client-th.html * igt@xe_eudebug_online@interrupt-all-set-breakpoint: - shard-lnl: NOTRUN -> [SKIP][138] ([Intel XE#4837]) +5 other tests skip [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-4/igt@xe_eudebug_online@interrupt-all-set-breakpoint.html * igt@xe_evict@evict-beng-mixed-many-threads-small: - shard-adlp: NOTRUN -> [SKIP][139] ([Intel XE#261]) [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@xe_evict@evict-beng-mixed-many-threads-small.html * igt@xe_evict@evict-mixed-threads-small: - shard-adlp: NOTRUN -> [SKIP][140] ([Intel XE#261] / [Intel XE#688]) [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@xe_evict@evict-mixed-threads-small.html * igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen: - shard-lnl: NOTRUN -> [SKIP][141] ([Intel XE#688]) +3 other tests skip [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-5/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen.html * igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race: - shard-lnl: NOTRUN -> [SKIP][142] ([Intel XE#1392]) +2 other tests skip [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html - shard-adlp: NOTRUN -> [SKIP][143] ([Intel XE#1392] / [Intel XE#5575]) [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html - shard-bmg: NOTRUN -> [SKIP][144] ([Intel XE#2322]) [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-7/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html * igt@xe_exec_fault_mode@twice-userptr-invalidate-imm: - shard-adlp: NOTRUN -> [SKIP][145] ([Intel XE#288] / [Intel XE#5561]) +3 other tests skip [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-6/igt@xe_exec_fault_mode@twice-userptr-invalidate-imm.html * igt@xe_exec_fault_mode@twice-userptr-prefetch: - shard-dg2-set2: NOTRUN -> [SKIP][146] ([Intel XE#288]) +10 other tests skip [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_exec_fault_mode@twice-userptr-prefetch.html * igt@xe_exec_mix_modes@exec-simple-batch-store-lr: - shard-dg2-set2: NOTRUN -> [SKIP][147] ([Intel XE#2360]) [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html - shard-adlp: NOTRUN -> [SKIP][148] ([Intel XE#2360]) [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-9/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html * igt@xe_exec_sip_eudebug@breakpoint-writesip: - shard-dg2-set2: NOTRUN -> [SKIP][149] ([Intel XE#4837]) +13 other tests skip [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-435/igt@xe_exec_sip_eudebug@breakpoint-writesip.html * igt@xe_exec_system_allocator@madvise-range-invalidate-change-attr: - shard-lnl: NOTRUN -> [WARN][150] ([Intel XE#5786]) +2 other tests warn [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@xe_exec_system_allocator@madvise-range-invalidate-change-attr.html * igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset: - shard-bmg: NOTRUN -> [SKIP][151] ([Intel XE#4943]) +4 other tests skip [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-8/igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset.html * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma: - shard-lnl: [PASS][152] -> [FAIL][153] ([Intel XE#5625]) +1 other test fail [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-8/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-5/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html * igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-free-madvise: - shard-adlp: NOTRUN -> [SKIP][154] ([Intel XE#4915]) +66 other tests skip [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-3/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-free-madvise.html * igt@xe_exec_system_allocator@threads-shared-vm-many-large-malloc: - shard-dg2-set2: NOTRUN -> [SKIP][155] ([Intel XE#4915]) +224 other tests skip [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-433/igt@xe_exec_system_allocator@threads-shared-vm-many-large-malloc.html * igt@xe_exec_system_allocator@threads-shared-vm-many-large-mmap-new-huge: - shard-lnl: NOTRUN -> [SKIP][156] ([Intel XE#4943]) +8 other tests skip [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-1/igt@xe_exec_system_allocator@threads-shared-vm-many-large-mmap-new-huge.html * igt@xe_media_fill@media-fill: - shard-dg2-set2: NOTRUN -> [SKIP][157] ([Intel XE#560]) [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@xe_media_fill@media-fill.html - shard-lnl: NOTRUN -> [SKIP][158] ([Intel XE#560]) [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-5/igt@xe_media_fill@media-fill.html * igt@xe_mmap@pci-membarrier-bad-object: - shard-adlp: NOTRUN -> [SKIP][159] ([Intel XE#5100]) [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-3/igt@xe_mmap@pci-membarrier-bad-object.html - shard-lnl: NOTRUN -> [SKIP][160] ([Intel XE#5100]) [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-7/igt@xe_mmap@pci-membarrier-bad-object.html * igt@xe_module_load@force-load: - shard-dg2-set2: NOTRUN -> [SKIP][161] ([Intel XE#378]) [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@xe_module_load@force-load.html * igt@xe_oa@oa-unit-exclusive-stream-sample-oa: - shard-dg2-set2: NOTRUN -> [SKIP][162] ([Intel XE#3573]) +3 other tests skip [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-433/igt@xe_oa@oa-unit-exclusive-stream-sample-oa.html * igt@xe_pat@pat-index-xelp: - shard-lnl: NOTRUN -> [SKIP][163] ([Intel XE#977]) [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-8/igt@xe_pat@pat-index-xelp.html - shard-bmg: NOTRUN -> [SKIP][164] ([Intel XE#2245]) [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@xe_pat@pat-index-xelp.html * igt@xe_pm@d3cold-mmap-system: - shard-dg2-set2: NOTRUN -> [SKIP][165] ([Intel XE#2284] / [Intel XE#366]) [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@xe_pm@d3cold-mmap-system.html * igt@xe_pmu@engine-activity-accuracy-90: - shard-lnl: NOTRUN -> [FAIL][166] ([Intel XE#6251]) +3 other tests fail [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-8/igt@xe_pmu@engine-activity-accuracy-90.html * igt@xe_pmu@gt-c6-idle: - shard-dg2-set2: NOTRUN -> [FAIL][167] ([Intel XE#6366]) [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_pmu@gt-c6-idle.html * igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq: - shard-dg2-set2: NOTRUN -> [SKIP][168] ([Intel XE#4733]) +2 other tests skip [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html * igt@xe_pxp@regular-src-to-pxp-dest-rendercopy: - shard-adlp: NOTRUN -> [SKIP][169] ([Intel XE#4733] / [Intel XE#5594]) [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-3/igt@xe_pxp@regular-src-to-pxp-dest-rendercopy.html - shard-bmg: NOTRUN -> [SKIP][170] ([Intel XE#4733]) [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-2/igt@xe_pxp@regular-src-to-pxp-dest-rendercopy.html * igt@xe_sriov_flr@flr-twice: - shard-dg2-set2: NOTRUN -> [SKIP][171] ([Intel XE#4273]) [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-436/igt@xe_sriov_flr@flr-twice.html - shard-lnl: NOTRUN -> [SKIP][172] ([Intel XE#4273]) [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-4/igt@xe_sriov_flr@flr-twice.html * igt@xe_sriov_flr@flr-vf1-clear: - shard-dg2-set2: NOTRUN -> [SKIP][173] ([Intel XE#3342]) [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-435/igt@xe_sriov_flr@flr-vf1-clear.html * igt@xe_sriov_flr@flr-vfs-parallel: - shard-bmg: [PASS][174] -> [FAIL][175] ([Intel XE#6569]) +1 other test fail [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-5/igt@xe_sriov_flr@flr-vfs-parallel.html [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-7/igt@xe_sriov_flr@flr-vfs-parallel.html * igt@xe_sriov_vram@vf-access-after-resize-up: - shard-bmg: [PASS][176] -> [FAIL][177] ([Intel XE#5937]) [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@xe_sriov_vram@vf-access-after-resize-up.html [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@xe_sriov_vram@vf-access-after-resize-up.html - shard-dg2-set2: NOTRUN -> [SKIP][178] ([Intel XE#6318]) [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_sriov_vram@vf-access-after-resize-up.html #### Possible fixes #### * igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1: - shard-adlp: [FAIL][179] ([Intel XE#3884]) -> [PASS][180] [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-9/igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1.html [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-3/igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1.html * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-adlp: [DMESG-FAIL][181] ([Intel XE#4543]) -> [PASS][182] +7 other tests pass [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-9/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-dp-4: - shard-dg2-set2: [INCOMPLETE][183] ([Intel XE#3862]) -> [PASS][184] +1 other test pass [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-466/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-dp-4.html [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-435/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-c-dp-4.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6: - shard-dg2-set2: [INCOMPLETE][185] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522]) -> [PASS][186] [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions: - shard-bmg: [SKIP][187] ([Intel XE#2291]) -> [PASS][188] [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-8/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size: - shard-bmg: [DMESG-WARN][189] ([Intel XE#5354]) -> [PASS][190] +1 other test pass [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-1/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html * igt@kms_flip@2x-flip-vs-expired-vblank: - shard-dg2-set2: [FAIL][191] ([Intel XE#301] / [Intel XE#3321]) -> [PASS][192] [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@kms_flip@2x-flip-vs-expired-vblank.html [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_flip@2x-flip-vs-expired-vblank.html * igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a6-dp4: - shard-dg2-set2: [FAIL][193] ([Intel XE#301]) -> [PASS][194] [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a6-dp4.html [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a6-dp4.html * igt@kms_flip@2x-plain-flip-interruptible: - shard-bmg: [SKIP][195] ([Intel XE#2316]) -> [PASS][196] +6 other tests pass [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_flip@2x-plain-flip-interruptible.html [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@kms_flip@2x-plain-flip-interruptible.html * igt@kms_flip@flip-vs-expired-vblank@a-edp1: - shard-lnl: [FAIL][197] ([Intel XE#301]) -> [PASS][198] +2 other tests pass [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html * igt@kms_flip@flip-vs-rmfb-interruptible: - shard-adlp: [DMESG-WARN][199] ([Intel XE#4543] / [Intel XE#5208]) -> [PASS][200] [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-2/igt@kms_flip@flip-vs-rmfb-interruptible.html [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible.html * igt@kms_flip@plain-flip-interruptible@b-hdmi-a1: - shard-adlp: [DMESG-WARN][201] ([Intel XE#4543]) -> [PASS][202] +7 other tests pass [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-6/igt@kms_flip@plain-flip-interruptible@b-hdmi-a1.html [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-3/igt@kms_flip@plain-flip-interruptible@b-hdmi-a1.html * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-valid-mode: - shard-adlp: [DMESG-FAIL][203] ([Intel XE#4543] / [Intel XE#4921]) -> [PASS][204] +1 other test pass [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-valid-mode.html [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-valid-mode.html * igt@kms_hdr@static-toggle: - shard-bmg: [SKIP][205] ([Intel XE#1503]) -> [PASS][206] [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_hdr@static-toggle.html [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-5/igt@kms_hdr@static-toggle.html * igt@kms_joiner@basic-force-big-joiner: - shard-bmg: [SKIP][207] ([Intel XE#3012]) -> [PASS][208] [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_joiner@basic-force-big-joiner.html [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-7/igt@kms_joiner@basic-force-big-joiner.html * igt@kms_plane_multiple@2x-tiling-none: - shard-bmg: [SKIP][209] ([Intel XE#4596]) -> [PASS][210] [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-none.html [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@kms_plane_multiple@2x-tiling-none.html * igt@kms_vrr@negative-basic: - shard-bmg: [SKIP][211] ([Intel XE#1499]) -> [PASS][212] [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_vrr@negative-basic.html [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-5/igt@kms_vrr@negative-basic.html * igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-invalidate: - shard-dg2-set2: [INCOMPLETE][213] -> [PASS][214] [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-433/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-invalidate.html [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-invalidate.html * igt@xe_module_load@load: - shard-dg2-set2: ([PASS][215], [PASS][216], [PASS][217], [PASS][218], [PASS][219], [PASS][220], [PASS][221], [PASS][222], [PASS][223], [PASS][224], [PASS][225], [PASS][226], [PASS][227], [PASS][228], [PASS][229], [PASS][230], [PASS][231], [PASS][232], [PASS][233], [SKIP][234], [PASS][235], [PASS][236], [PASS][237], [PASS][238], [PASS][239], [PASS][240]) ([Intel XE#378]) -> ([PASS][241], [PASS][242], [PASS][243], [PASS][244], [PASS][245], [PASS][246], [PASS][247], [PASS][248], [PASS][249], [PASS][250], [PASS][251], [PASS][252], [PASS][253], [PASS][254], [PASS][255], [PASS][256], [PASS][257], [PASS][258], [PASS][259], [PASS][260], [PASS][261], [PASS][262], [PASS][263], [PASS][264], [PASS][265]) [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-466/igt@xe_module_load@load.html [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-466/igt@xe_module_load@load.html [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-435/igt@xe_module_load@load.html [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-435/igt@xe_module_load@load.html [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-435/igt@xe_module_load@load.html [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-464/igt@xe_module_load@load.html [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-464/igt@xe_module_load@load.html [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-464/igt@xe_module_load@load.html [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-432/igt@xe_module_load@load.html [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-432/igt@xe_module_load@load.html [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-432/igt@xe_module_load@load.html [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-436/igt@xe_module_load@load.html [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-463/igt@xe_module_load@load.html [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-464/igt@xe_module_load@load.html [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-436/igt@xe_module_load@load.html [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-433/igt@xe_module_load@load.html [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-432/igt@xe_module_load@load.html [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-433/igt@xe_module_load@load.html [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-433/igt@xe_module_load@load.html [234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-433/igt@xe_module_load@load.html [235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-463/igt@xe_module_load@load.html [236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-463/igt@xe_module_load@load.html [237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@xe_module_load@load.html [238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@xe_module_load@load.html [239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@xe_module_load@load.html [240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-434/igt@xe_module_load@load.html [241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_module_load@load.html [242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-436/igt@xe_module_load@load.html [243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-436/igt@xe_module_load@load.html [244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-435/igt@xe_module_load@load.html [245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-433/igt@xe_module_load@load.html [246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-433/igt@xe_module_load@load.html [247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-433/igt@xe_module_load@load.html [248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@xe_module_load@load.html [249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_module_load@load.html [250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@xe_module_load@load.html [251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@xe_module_load@load.html [252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@xe_module_load@load.html [253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@xe_module_load@load.html [254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-435/igt@xe_module_load@load.html [255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-435/igt@xe_module_load@load.html [256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@xe_module_load@load.html [257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-463/igt@xe_module_load@load.html [258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-463/igt@xe_module_load@load.html [259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_module_load@load.html [260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-432/igt@xe_module_load@load.html [261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@xe_module_load@load.html [262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-466/igt@xe_module_load@load.html [263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-436/igt@xe_module_load@load.html [264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@xe_module_load@load.html [265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-434/igt@xe_module_load@load.html * igt@xe_pm@s4-vm-bind-prefetch: - shard-adlp: [DMESG-WARN][266] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][267] +2 other tests pass [266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-adlp-8/igt@xe_pm@s4-vm-bind-prefetch.html [267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-adlp-8/igt@xe_pm@s4-vm-bind-prefetch.html * igt@xe_pmu@engine-activity-accuracy-50: - shard-lnl: [FAIL][268] ([Intel XE#6251]) -> [PASS][269] +2 other tests pass [268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-lnl-3/igt@xe_pmu@engine-activity-accuracy-50.html [269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-lnl-2/igt@xe_pmu@engine-activity-accuracy-50.html * igt@xe_sriov_auto_provisioning@exclusive-ranges@numvfs-random: - shard-bmg: [FAIL][270] ([Intel XE#5937]) -> [PASS][271] +3 other tests pass [270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@xe_sriov_auto_provisioning@exclusive-ranges@numvfs-random.html [271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@xe_sriov_auto_provisioning@exclusive-ranges@numvfs-random.html #### Warnings #### * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs: - shard-dg2-set2: [INCOMPLETE][272] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [INCOMPLETE][273] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168]) [272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html [273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html * igt@kms_content_protection@atomic: - shard-bmg: [FAIL][274] ([Intel XE#1178]) -> [SKIP][275] ([Intel XE#2341]) [274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-1/igt@kms_content_protection@atomic.html [275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_content_protection@atomic.html * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt: - shard-bmg: [SKIP][276] ([Intel XE#2311]) -> [SKIP][277] ([Intel XE#2312]) +7 other tests skip [276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt.html [277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt: - shard-bmg: [SKIP][278] ([Intel XE#4141]) -> [SKIP][279] ([Intel XE#2312]) +2 other tests skip [278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html [279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render: - shard-bmg: [SKIP][280] ([Intel XE#2312]) -> [SKIP][281] ([Intel XE#4141]) +5 other tests skip [280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html [281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt: - shard-bmg: [SKIP][282] ([Intel XE#2312]) -> [SKIP][283] ([Intel XE#2311]) +8 other tests skip [282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt.html [283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff: - shard-bmg: [SKIP][284] ([Intel XE#2313]) -> [SKIP][285] ([Intel XE#2312]) +5 other tests skip [284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html [285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt: - shard-bmg: [SKIP][286] ([Intel XE#2312]) -> [SKIP][287] ([Intel XE#2313]) +8 other tests skip [286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html [287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-bmg: [SKIP][288] ([Intel XE#2509]) -> [SKIP][289] ([Intel XE#2426]) [288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html [289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124 [Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126 [Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129 [Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135 [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#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401 [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406 [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421 [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424 [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435 [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439 [Intel XE#1450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1450 [Intel XE#1475]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1475 [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489 [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499 [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503 [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727 [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745 [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049 [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234 [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245 [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#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341 [Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360 [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374 [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380 [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390 [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426 [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509 [Intel XE#2568]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2568 [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#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652 [Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669 [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#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893 [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#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012 [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306 [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#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141 [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316 [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321 [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342 [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374 [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414 [Intel XE#3433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3433 [Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442 [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544 [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573 [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366 [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367 [Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718 [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373 [Intel XE#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#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141 [Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156 [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173 [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212 [Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273 [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302 [Intel XE#4331]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4331 [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345 [Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459 [Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522 [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543 [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455 [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596 [Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609 [Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633 [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733 [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837 [Intel XE#4912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4912 [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915 [Intel XE#4921]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4921 [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943 [Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100 [Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208 [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354 [Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561 [Intel XE#5565]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5565 [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575 [Intel XE#5594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5594 [Intel XE#560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/560 [Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625 [Intel XE#5786]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5786 [Intel XE#5937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5937 [Intel XE#5993]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5993 [Intel XE#6010]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6010 [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078 [Intel XE#6168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6168 [Intel XE#619]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/619 [Intel XE#6251]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6251 [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312 [Intel XE#6318]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6318 [Intel XE#6360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6360 [Intel XE#6361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6361 [Intel XE#6366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6366 [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#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569 [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688 [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718 [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776 [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#908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/908 [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929 [Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977 Build changes ------------- * IGT: IGT_8629 -> IGT_8630 * Linux: xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8 -> xe-pw-156339v4 IGT_8629: 3813b62c3c6200f69d6cc8be1c5e621243ace24f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git IGT_8630: 8630 xe-4121-91fc6d984707c9bfd4a60550e6a85f1a991e7ec8: 91fc6d984707c9bfd4a60550e6a85f1a991e7ec8 xe-pw-156339v4: 156339v4 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-156339v4/index.html [-- Attachment #2: Type: text/html, Size: 88505 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-11-20 13:35 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-11-18 11:41 [PATCH v4 0/3] VF double migration Satyanarayana K V P 2025-11-18 11:41 ` [PATCH v4 1/3] drm/xe/vf: Enable VF migration only on supported GUC versions Satyanarayana K V P 2025-11-19 14:47 ` Michal Wajdeczko 2025-11-18 11:41 ` [PATCH v4 2/3] drm/xe/vf: Introduce RESFIX start marker support Satyanarayana K V P 2025-11-19 17:24 ` Michal Wajdeczko 2025-11-19 17:38 ` Matthew Brost 2025-11-20 13:33 ` K V P, Satyanarayana 2025-11-18 11:41 ` [PATCH v4 3/3] drm/xe/vf: Add debugfs entries to test VF double migration Satyanarayana K V P 2025-11-19 17:51 ` Michal Wajdeczko 2025-11-20 13:35 ` K V P, Satyanarayana 2025-11-18 12:31 ` ✓ CI.KUnit: success for VF double migration (rev4) Patchwork 2025-11-18 13:09 ` ✓ Xe.CI.BAT: " Patchwork 2025-11-18 15:19 ` ✗ Xe.CI.Full: failure " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox