* [Intel-gfx] [PATCH 0/2] Improvements to GuC load failure handling
@ 2023-02-17 23:47 John.C.Harrison
2023-02-17 23:47 ` [Intel-gfx] [PATCH 1/2] drm/i915/guc: Improve GuC load error reporting John.C.Harrison
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: John.C.Harrison @ 2023-02-17 23:47 UTC (permalink / raw)
To: Intel-GFX; +Cc: DRI-Devel
From: John Harrison <John.C.Harrison@Intel.com>
Add more decoding of the GuC load failures. Also include information
about GT frequency to see if timeouts are due to a failure to boost
the clocks. Finally, increase the timeout to accommodate situations
where the clock boost does fail.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
John Harrison (2):
drm/i915/guc: Improve GuC load error reporting
drm/i915/guc: Allow for very slow GuC loading
.../gpu/drm/i915/gt/uc/abi/guc_errors_abi.h | 17 +++
drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 128 +++++++++++++++---
drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 4 +-
3 files changed, 127 insertions(+), 22 deletions(-)
--
2.39.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 1/2] drm/i915/guc: Improve GuC load error reporting
2023-02-17 23:47 [Intel-gfx] [PATCH 0/2] Improvements to GuC load failure handling John.C.Harrison
@ 2023-02-17 23:47 ` John.C.Harrison
2023-03-03 19:09 ` Ceraolo Spurio, Daniele
2023-02-17 23:47 ` [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading John.C.Harrison
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: John.C.Harrison @ 2023-02-17 23:47 UTC (permalink / raw)
To: Intel-GFX; +Cc: DRI-Devel
From: John Harrison <John.C.Harrison@Intel.com>
There are multiple ways in which the GuC load can fail. The driver was
reporting the status register as is, but not everyone can read the
matrix unfiltered. So add decoding of the common error cases.
Also, remove the comment about interrupt based load completion
checking being not recommended. The interrupt was removed from the GuC
firmware some time ago so it is no longer an option anyway. While at
it, also abort the timeout if a known error code is reported. No need
to keep waiting if the GuC has already given up the load.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
.../gpu/drm/i915/gt/uc/abi/guc_errors_abi.h | 17 ++++
drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 95 +++++++++++++++----
drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 4 +-
3 files changed, 95 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
index 8085fb1812748..750fe0c6d8529 100644
--- a/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
+++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
@@ -21,6 +21,9 @@ enum intel_guc_load_status {
INTEL_GUC_LOAD_STATUS_ERROR_DEVID_BUILD_MISMATCH = 0x02,
INTEL_GUC_LOAD_STATUS_GUC_PREPROD_BUILD_MISMATCH = 0x03,
INTEL_GUC_LOAD_STATUS_ERROR_DEVID_INVALID_GUCTYPE = 0x04,
+ INTEL_GUC_LOAD_STATUS_HWCONFIG_START = 0x05,
+ INTEL_GUC_LOAD_STATUS_HWCONFIG_DONE = 0x06,
+ INTEL_GUC_LOAD_STATUS_HWCONFIG_ERROR = 0x07,
INTEL_GUC_LOAD_STATUS_GDT_DONE = 0x10,
INTEL_GUC_LOAD_STATUS_IDT_DONE = 0x20,
INTEL_GUC_LOAD_STATUS_LAPIC_DONE = 0x30,
@@ -38,4 +41,18 @@ enum intel_guc_load_status {
INTEL_GUC_LOAD_STATUS_READY = 0xF0,
};
+enum intel_bootrom_load_status {
+ INTEL_BOOTROM_STATUS_NO_KEY_FOUND = 0x13,
+ INTEL_BOOTROM_STATUS_AES_PROD_KEY_FOUND = 0x1A,
+ INTEL_BOOTROM_STATUS_RSA_FAILED = 0x50,
+ INTEL_BOOTROM_STATUS_PAVPC_FAILED = 0x73,
+ INTEL_BOOTROM_STATUS_WOPCM_FAILED = 0x74,
+ INTEL_BOOTROM_STATUS_LOADLOC_FAILED = 0x75,
+ INTEL_BOOTROM_STATUS_JUMP_PASSED = 0x76,
+ INTEL_BOOTROM_STATUS_JUMP_FAILED = 0x77,
+ INTEL_BOOTROM_STATUS_RC6CTXCONFIG_FAILED = 0x79,
+ INTEL_BOOTROM_STATUS_MPUMAP_INCORRECT = 0x7a,
+ INTEL_BOOTROM_STATUS_EXCEPTION = 0x7E,
+};
+
#endif /* _ABI_GUC_ERRORS_ABI_H */
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
index 69133420c78b2..2f5942606913d 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
@@ -88,31 +88,64 @@ static int guc_xfer_rsa(struct intel_uc_fw *guc_fw,
/*
* Read the GuC status register (GUC_STATUS) and store it in the
* specified location; then return a boolean indicating whether
- * the value matches either of two values representing completion
- * of the GuC boot process.
+ * the value matches either completion or a known failure code.
*
* This is used for polling the GuC status in a wait_for()
* loop below.
*/
-static inline bool guc_ready(struct intel_uncore *uncore, u32 *status)
+static inline bool guc_load_done(struct intel_uncore *uncore, u32 *status, bool *success)
{
u32 val = intel_uncore_read(uncore, GUC_STATUS);
u32 uk_val = REG_FIELD_GET(GS_UKERNEL_MASK, val);
+ u32 br_val = REG_FIELD_GET(GS_BOOTROM_MASK, val);
*status = val;
- return uk_val == INTEL_GUC_LOAD_STATUS_READY;
+ *success = true;
+ switch (uk_val) {
+ case INTEL_GUC_LOAD_STATUS_READY:
+ return true;
+
+ case INTEL_GUC_LOAD_STATUS_ERROR_DEVID_BUILD_MISMATCH:
+ case INTEL_GUC_LOAD_STATUS_GUC_PREPROD_BUILD_MISMATCH:
+ case INTEL_GUC_LOAD_STATUS_ERROR_DEVID_INVALID_GUCTYPE:
+ case INTEL_GUC_LOAD_STATUS_HWCONFIG_ERROR:
+ case INTEL_GUC_LOAD_STATUS_DPC_ERROR:
+ case INTEL_GUC_LOAD_STATUS_EXCEPTION:
+ case INTEL_GUC_LOAD_STATUS_INIT_DATA_INVALID:
+ case INTEL_GUC_LOAD_STATUS_MPU_DATA_INVALID:
+ case INTEL_GUC_LOAD_STATUS_INIT_MMIO_SAVE_RESTORE_INVALID:
+ *success = false;
+ return true;
+ }
+
+ switch (br_val) {
+ case INTEL_BOOTROM_STATUS_NO_KEY_FOUND:
+ case INTEL_BOOTROM_STATUS_RSA_FAILED:
+ case INTEL_BOOTROM_STATUS_PAVPC_FAILED:
+ case INTEL_BOOTROM_STATUS_WOPCM_FAILED:
+ case INTEL_BOOTROM_STATUS_LOADLOC_FAILED:
+ case INTEL_BOOTROM_STATUS_JUMP_FAILED:
+ case INTEL_BOOTROM_STATUS_RC6CTXCONFIG_FAILED:
+ case INTEL_BOOTROM_STATUS_MPUMAP_INCORRECT:
+ case INTEL_BOOTROM_STATUS_EXCEPTION:
+ *success = false;
+ return true;
+ }
+
+ return false;
}
static int guc_wait_ucode(struct intel_guc *guc)
{
struct intel_gt *gt = guc_to_gt(guc);
struct intel_uncore *uncore = gt->uncore;
+ bool success;
u32 status;
int ret;
/*
* Wait for the GuC to start up.
- * NB: Docs recommend not using the interrupt for completion.
+ *
* Measurements indicate this should take no more than 20ms
* (assuming the GT clock is at maximum frequency). So, a
* timeout here indicates that the GuC has failed and is unusable.
@@ -127,28 +160,52 @@ static int guc_wait_ucode(struct intel_guc *guc)
* 200ms. Even at slowest clock, this should be sufficient. And
* in the working case, a larger timeout makes no difference.
*/
- ret = wait_for(guc_ready(uncore, &status), 200);
- if (ret) {
- guc_info(guc, "load failed: status = 0x%08X\n", status);
- guc_info(guc, "load failed: status: Reset = %d, "
- "BootROM = 0x%02X, UKernel = 0x%02X, "
- "MIA = 0x%02X, Auth = 0x%02X\n",
- REG_FIELD_GET(GS_MIA_IN_RESET, status),
- REG_FIELD_GET(GS_BOOTROM_MASK, status),
- REG_FIELD_GET(GS_UKERNEL_MASK, status),
- REG_FIELD_GET(GS_MIA_MASK, status),
- REG_FIELD_GET(GS_AUTH_STATUS_MASK, status));
-
- if ((status & GS_BOOTROM_MASK) == GS_BOOTROM_RSA_FAILED) {
+ ret = wait_for(guc_load_done(uncore, &status, &success), 200);
+ if (ret || !success) {
+ u32 ukernel = REG_FIELD_GET(GS_UKERNEL_MASK, status);
+ u32 bootrom = REG_FIELD_GET(GS_BOOTROM_MASK, status);
+
+ guc_info(guc, "load failed: status = 0x%08X, ret = %d\n", status, ret);
+ guc_info(guc, "load failed: status: Reset = %d, BootROM = 0x%02X, UKernel = 0x%02X, MIA = 0x%02X, Auth = 0x%02X\n",
+ REG_FIELD_GET(GS_MIA_IN_RESET, status),
+ bootrom, ukernel,
+ REG_FIELD_GET(GS_MIA_MASK, status),
+ REG_FIELD_GET(GS_AUTH_STATUS_MASK, status));
+
+ switch (bootrom) {
+ case INTEL_BOOTROM_STATUS_NO_KEY_FOUND:
+ guc_info(guc, "invalid key requested, header = 0x%08X\n",
+ intel_uncore_read(uncore, GUC_HEADER_INFO));
+ ret = -ENOEXEC;
+ break;
+
+ case INTEL_BOOTROM_STATUS_RSA_FAILED:
guc_info(guc, "firmware signature verification failed\n");
ret = -ENOEXEC;
+ break;
}
- if (REG_FIELD_GET(GS_UKERNEL_MASK, status) == INTEL_GUC_LOAD_STATUS_EXCEPTION) {
+ switch (ukernel) {
+ case INTEL_GUC_LOAD_STATUS_EXCEPTION:
guc_info(guc, "firmware exception. EIP: %#x\n",
intel_uncore_read(uncore, SOFT_SCRATCH(13)));
ret = -ENXIO;
+ break;
+
+ case INTEL_GUC_LOAD_STATUS_INIT_MMIO_SAVE_RESTORE_INVALID:
+ guc_info(guc, "illegal register in save/restore workaround list\n");
+ ret = -EPERM;
+ break;
+
+ case INTEL_GUC_LOAD_STATUS_HWCONFIG_START:
+ guc_info(guc, "still extracting hwconfig table.\n");
+ ret = -ETIMEDOUT;
+ break;
}
+
+ /* Uncommon/unexpected error, see earlier status code print for details */
+ if (ret == 0)
+ ret = -ENXIO;
}
return ret;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
index 9915de32e894e..3fd7988375020 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
@@ -18,8 +18,6 @@
#define GS_MIA_IN_RESET (0x01 << GS_RESET_SHIFT)
#define GS_BOOTROM_SHIFT 1
#define GS_BOOTROM_MASK (0x7F << GS_BOOTROM_SHIFT)
-#define GS_BOOTROM_RSA_FAILED (0x50 << GS_BOOTROM_SHIFT)
-#define GS_BOOTROM_JUMP_PASSED (0x76 << GS_BOOTROM_SHIFT)
#define GS_UKERNEL_SHIFT 8
#define GS_UKERNEL_MASK (0xFF << GS_UKERNEL_SHIFT)
#define GS_MIA_SHIFT 16
@@ -32,6 +30,8 @@
#define GS_AUTH_STATUS_BAD (0x01 << GS_AUTH_STATUS_SHIFT)
#define GS_AUTH_STATUS_GOOD (0x02 << GS_AUTH_STATUS_SHIFT)
+#define GUC_HEADER_INFO _MMIO(0xc014)
+
#define SOFT_SCRATCH(n) _MMIO(0xc180 + (n) * 4)
#define SOFT_SCRATCH_COUNT 16
--
2.39.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading
2023-02-17 23:47 [Intel-gfx] [PATCH 0/2] Improvements to GuC load failure handling John.C.Harrison
2023-02-17 23:47 ` [Intel-gfx] [PATCH 1/2] drm/i915/guc: Improve GuC load error reporting John.C.Harrison
@ 2023-02-17 23:47 ` John.C.Harrison
2023-03-03 19:20 ` Ceraolo Spurio, Daniele
2023-02-18 0:51 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Improvements to GuC load failure handling Patchwork
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: John.C.Harrison @ 2023-02-17 23:47 UTC (permalink / raw)
To: Intel-GFX; +Cc: DRI-Devel
From: John Harrison <John.C.Harrison@Intel.com>
A failure to load the GuC is occasionally observed where the GuC log
actually showed that the GuC had loaded just fine. The implication
being that the load just took ever so slightly longer than the 200ms
timeout. Given that the actual time should be tens of milliseconds at
the slowest, this should never happen. So far the issue has generally
been caused by a bad IFWI resulting in low frequencies during boot
(depsite the KMD requesting max frequency). However, the issue seems
to happen more often than one would like.
So a) increase the timeout so that the user still gets a working
system even in the case of slow load. And b) report the frequency
during the load to see if that is the case of the slow down.
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 37 +++++++++++++++++++++--
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
index 2f5942606913d..72e003f50617d 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
@@ -12,6 +12,7 @@
#include "gt/intel_gt.h"
#include "gt/intel_gt_mcr.h"
#include "gt/intel_gt_regs.h"
+#include "gt/intel_rps.h"
#include "intel_guc_fw.h"
#include "intel_guc_print.h"
#include "i915_drv.h"
@@ -139,9 +140,12 @@ static int guc_wait_ucode(struct intel_guc *guc)
{
struct intel_gt *gt = guc_to_gt(guc);
struct intel_uncore *uncore = gt->uncore;
+ ktime_t before, after, delta;
bool success;
u32 status;
- int ret;
+ int ret, count;
+ u64 delta_ms;
+ u32 before_freq;
/*
* Wait for the GuC to start up.
@@ -159,13 +163,32 @@ static int guc_wait_ucode(struct intel_guc *guc)
* issues to be resolved. In the meantime bump the timeout to
* 200ms. Even at slowest clock, this should be sufficient. And
* in the working case, a larger timeout makes no difference.
+ *
+ * IFWI updates have also been seen to cause sporadic failures due to
+ * the requested frequency not being granted and thus the firmware
+ * load is attempted at minimum frequency. That can lead to load times
+ * in the seconds range. However, there is a limit on how long an
+ * individual wait_for() can wait. So wrap it in a loop.
*/
- ret = wait_for(guc_load_done(uncore, &status, &success), 200);
+ before_freq = intel_rps_read_actual_frequency(&uncore->gt->rps);
+ before = ktime_get();
+ for (count = 0; count < 20; count++) {
+ ret = wait_for(guc_load_done(uncore, &status, &success), 1000);
+ if (!ret || !success)
+ break;
+
+ guc_dbg(guc, "load still in progress, count = %d, freq = %dMHz\n",
+ count, intel_rps_read_actual_frequency(&uncore->gt->rps));
+ }
+ after = ktime_get();
+ delta = ktime_sub(after, before);
+ delta_ms = ktime_to_ms(delta);
if (ret || !success) {
u32 ukernel = REG_FIELD_GET(GS_UKERNEL_MASK, status);
u32 bootrom = REG_FIELD_GET(GS_BOOTROM_MASK, status);
- guc_info(guc, "load failed: status = 0x%08X, ret = %d\n", status, ret);
+ guc_info(guc, "load failed: status = 0x%08X, time = %lldms, freq = %dMHz, ret = %d\n",
+ status, delta_ms, intel_rps_read_actual_frequency(&uncore->gt->rps), ret);
guc_info(guc, "load failed: status: Reset = %d, BootROM = 0x%02X, UKernel = 0x%02X, MIA = 0x%02X, Auth = 0x%02X\n",
REG_FIELD_GET(GS_MIA_IN_RESET, status),
bootrom, ukernel,
@@ -206,6 +229,14 @@ static int guc_wait_ucode(struct intel_guc *guc)
/* Uncommon/unexpected error, see earlier status code print for details */
if (ret == 0)
ret = -ENXIO;
+ } else if (delta_ms > 200) {
+ guc_warn(guc, "excessive init time: %lldms! [freq = %dMHz, before = %dMHz, status = 0x%08X, count = %d, ret = %d]\n",
+ delta_ms, intel_rps_read_actual_frequency(&uncore->gt->rps),
+ before_freq, status, count, ret);
+ } else {
+ guc_dbg(guc, "init took %lldms, freq = %dMHz, before = %dMHz, status = 0x%08X, count = %d, ret = %d\n",
+ delta_ms, intel_rps_read_actual_frequency(&uncore->gt->rps),
+ before_freq, status, count, ret);
}
return ret;
--
2.39.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Improvements to GuC load failure handling
2023-02-17 23:47 [Intel-gfx] [PATCH 0/2] Improvements to GuC load failure handling John.C.Harrison
2023-02-17 23:47 ` [Intel-gfx] [PATCH 1/2] drm/i915/guc: Improve GuC load error reporting John.C.Harrison
2023-02-17 23:47 ` [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading John.C.Harrison
@ 2023-02-18 0:51 ` Patchwork
2023-02-18 1:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-02-18 14:46 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-02-18 0:51 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-gfx
== Series Details ==
Series: Improvements to GuC load failure handling
URL : https://patchwork.freedesktop.org/series/114168/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for Improvements to GuC load failure handling
2023-02-17 23:47 [Intel-gfx] [PATCH 0/2] Improvements to GuC load failure handling John.C.Harrison
` (2 preceding siblings ...)
2023-02-18 0:51 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Improvements to GuC load failure handling Patchwork
@ 2023-02-18 1:03 ` Patchwork
2023-02-18 14:46 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-02-18 1:03 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 11062 bytes --]
== Series Details ==
Series: Improvements to GuC load failure handling
URL : https://patchwork.freedesktop.org/series/114168/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12759 -> Patchwork_114168v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/index.html
Participating hosts (38 -> 38)
------------------------------
Additional (2): bat-atsm-1 fi-pnv-d510
Missing (2): fi-kbl-soraka fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_114168v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@eof:
- bat-atsm-1: NOTRUN -> [SKIP][1] ([i915#2582]) +4 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@fbdev@eof.html
* igt@gem_mmap@basic:
- bat-atsm-1: NOTRUN -> [SKIP][2] ([i915#4083])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@gem_mmap@basic.html
* igt@gem_tiled_fence_blits@basic:
- bat-atsm-1: NOTRUN -> [SKIP][3] ([i915#4077]) +2 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@gem_tiled_fence_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-atsm-1: NOTRUN -> [SKIP][4] ([i915#4079]) +1 similar issue
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rpm@basic-rte:
- bat-adln-1: [PASS][5] -> [ABORT][6] ([i915#7977])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/bat-adln-1/igt@i915_pm_rpm@basic-rte.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-adln-1/igt@i915_pm_rpm@basic-rte.html
* igt@i915_pm_rps@basic-api:
- bat-atsm-1: NOTRUN -> [SKIP][7] ([i915#6621])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@i915_pm_rps@basic-api.html
* igt@i915_selftest@live@migrate:
- bat-atsm-1: NOTRUN -> [DMESG-FAIL][8] ([i915#7699])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@i915_selftest@live@migrate.html
* igt@i915_selftest@live@slpc:
- bat-rpls-2: NOTRUN -> [DMESG-FAIL][9] ([i915#6997])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-2/igt@i915_selftest@live@slpc.html
- bat-rpls-1: NOTRUN -> [DMESG-FAIL][10] ([i915#6367])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-1/igt@i915_selftest@live@slpc.html
* igt@i915_suspend@basic-s3-without-i915:
- bat-atsm-1: NOTRUN -> [SKIP][11] ([i915#6645])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_addfb_basic@size-max:
- bat-atsm-1: NOTRUN -> [SKIP][12] ([i915#6077]) +36 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_addfb_basic@size-max.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-rpls-2: NOTRUN -> [SKIP][13] ([i915#7828])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-dg2-11: NOTRUN -> [SKIP][14] ([i915#7828])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-dg2-11/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-rpls-1: NOTRUN -> [SKIP][15] ([i915#7828])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_cursor_legacy@basic-flip-after-cursor:
- bat-atsm-1: NOTRUN -> [SKIP][16] ([i915#6078]) +14 similar issues
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_cursor_legacy@basic-flip-after-cursor.html
* igt@kms_flip@basic-plain-flip:
- bat-atsm-1: NOTRUN -> [SKIP][17] ([i915#6166]) +3 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_flip@basic-plain-flip.html
* igt@kms_force_connector_basic@prune-stale-modes:
- bat-atsm-1: NOTRUN -> [SKIP][18] ([i915#6093]) +3 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_pipe_crc_basic@hang-read-crc:
- bat-atsm-1: NOTRUN -> [SKIP][19] ([i915#1836]) +6 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_pipe_crc_basic@hang-read-crc.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- bat-rpls-1: NOTRUN -> [SKIP][20] ([i915#1845])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
- bat-rpls-2: NOTRUN -> [SKIP][21] ([i915#1845])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_prop_blob@basic:
- bat-atsm-1: NOTRUN -> [SKIP][22] ([i915#7357])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_prop_blob@basic.html
* igt@kms_psr@primary_page_flip:
- fi-pnv-d510: NOTRUN -> [SKIP][23] ([fdo#109271]) +44 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/fi-pnv-d510/igt@kms_psr@primary_page_flip.html
* igt@kms_psr@sprite_plane_onoff:
- bat-atsm-1: NOTRUN -> [SKIP][24] ([i915#1072]) +3 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_psr@sprite_plane_onoff.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-atsm-1: NOTRUN -> [SKIP][25] ([i915#6094])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-flip:
- bat-atsm-1: NOTRUN -> [SKIP][26] ([fdo#109295] / [i915#6078])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-fence-mmap:
- bat-atsm-1: NOTRUN -> [SKIP][27] ([fdo#109295] / [i915#4077]) +1 similar issue
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@prime_vgem@basic-fence-mmap.html
* igt@prime_vgem@basic-write:
- bat-atsm-1: NOTRUN -> [SKIP][28] ([fdo#109295]) +3 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-atsm-1/igt@prime_vgem@basic-write.html
#### Possible fixes ####
* igt@i915_selftest@live@gt_heartbeat:
- fi-glk-j4005: [DMESG-FAIL][29] ([i915#5334]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@gt_lrc:
- bat-dg2-11: [INCOMPLETE][31] ([i915#7609] / [i915#7913]) -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
* igt@i915_selftest@live@gt_pm:
- bat-rpls-2: [DMESG-FAIL][33] ([i915#4258]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@requests:
- bat-rpls-2: [ABORT][35] ([i915#4983]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/bat-rpls-2/igt@i915_selftest@live@requests.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-2/igt@i915_selftest@live@requests.html
- bat-rpls-1: [ABORT][37] ([i915#4983] / [i915#7911]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/bat-rpls-1/igt@i915_selftest@live@requests.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/bat-rpls-1/igt@i915_selftest@live@requests.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6077]: https://gitlab.freedesktop.org/drm/intel/issues/6077
[i915#6078]: https://gitlab.freedesktop.org/drm/intel/issues/6078
[i915#6093]: https://gitlab.freedesktop.org/drm/intel/issues/6093
[i915#6094]: https://gitlab.freedesktop.org/drm/intel/issues/6094
[i915#6166]: https://gitlab.freedesktop.org/drm/intel/issues/6166
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7357]: https://gitlab.freedesktop.org/drm/intel/issues/7357
[i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
[i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977
Build changes
-------------
* Linux: CI_DRM_12759 -> Patchwork_114168v1
CI-20190529: 20190529
CI_DRM_12759: 00e12ed04ecb81a67099d4c4833c86186ca7d31e @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7165: 509e7e63c6377d0fe77d1bd209857fb191f4a84c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_114168v1: 00e12ed04ecb81a67099d4c4833c86186ca7d31e @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
a6af3799d1d4 drm/i915/guc: Allow for very slow GuC loading
4c693ee5aed4 drm/i915/guc: Improve GuC load error reporting
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/index.html
[-- Attachment #2: Type: text/html, Size: 12988 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for Improvements to GuC load failure handling
2023-02-17 23:47 [Intel-gfx] [PATCH 0/2] Improvements to GuC load failure handling John.C.Harrison
` (3 preceding siblings ...)
2023-02-18 1:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-02-18 14:46 ` Patchwork
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-02-18 14:46 UTC (permalink / raw)
To: john.c.harrison; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 40825 bytes --]
== Series Details ==
Series: Improvements to GuC load failure handling
URL : https://patchwork.freedesktop.org/series/114168/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12759_full -> Patchwork_114168v1_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/index.html
Participating hosts (11 -> 10)
------------------------------
Missing (1): shard-rkl0
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_114168v1_full:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* {igt@gem_barrier_race@remote-request@rcs0}:
- {shard-tglu}: NOTRUN -> [ABORT][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-8/igt@gem_barrier_race@remote-request@rcs0.html
* {igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-0-25}:
- {shard-rkl}: NOTRUN -> [SKIP][2] +1 similar issue
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-0-25.html
* {igt@v3d/v3d_submit_csd@bad-bo}:
- {shard-dg1}: NOTRUN -> [SKIP][3] +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-dg1-16/igt@v3d/v3d_submit_csd@bad-bo.html
Known issues
------------
Here are the changes found in Patchwork_114168v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@device_reset@unbind-cold-reset-rebind:
- shard-tglu-10: NOTRUN -> [SKIP][4] ([i915#7701])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@device_reset@unbind-cold-reset-rebind.html
* igt@feature_discovery@display-2x:
- shard-tglu-9: NOTRUN -> [SKIP][5] ([i915#1839])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@feature_discovery@display-2x.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-tglu-10: NOTRUN -> [SKIP][6] ([i915#5325])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_ccs@ctrl-surf-copy:
- shard-tglu-9: NOTRUN -> [SKIP][7] ([i915#3555] / [i915#5325])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gem_ccs@ctrl-surf-copy.html
* igt@gem_create@create-ext-cpu-access-sanity-check:
- shard-tglu-9: NOTRUN -> [SKIP][8] ([i915#6335])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gem_create@create-ext-cpu-access-sanity-check.html
* igt@gem_exec_capture@capture-recoverable:
- shard-tglu-9: NOTRUN -> [SKIP][9] ([i915#6344])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gem_exec_capture@capture-recoverable.html
* igt@gem_exec_fair@basic-none-vip@rcs0:
- shard-tglu-9: NOTRUN -> [FAIL][10] ([i915#2842])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gem_exec_fair@basic-none-vip@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglu-10: NOTRUN -> [FAIL][11] ([i915#2842]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@gem_exec_fair@basic-pace-share@rcs0.html
- shard-glk: [PASS][12] -> [FAIL][13] ([i915#2842])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_gttfill@multigpu-basic:
- shard-tglu-9: NOTRUN -> [SKIP][14] ([i915#7697])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gem_exec_gttfill@multigpu-basic.html
* igt@gem_lmem_swapping@heavy-verify-random-ccs:
- shard-glk: NOTRUN -> [SKIP][15] ([fdo#109271] / [i915#4613])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-glk7/igt@gem_lmem_swapping@heavy-verify-random-ccs.html
* igt@gem_lmem_swapping@parallel-random-engines:
- shard-tglu-10: NOTRUN -> [SKIP][16] ([i915#4613])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_pxp@protected-raw-src-copy-not-readible:
- shard-tglu-9: NOTRUN -> [SKIP][17] ([i915#4270])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gem_pxp@protected-raw-src-copy-not-readible.html
* igt@gem_userptr_blits@invalid-mmap-offset-unsync:
- shard-tglu-10: NOTRUN -> [SKIP][18] ([i915#3297]) +1 similar issue
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
* igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-tglu-9: NOTRUN -> [SKIP][19] ([i915#3297])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gem_userptr_blits@unsync-unmap-cycles.html
* igt@gen7_exec_parse@basic-allowed:
- shard-tglu-9: NOTRUN -> [SKIP][20] ([fdo#109289]) +3 similar issues
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gen7_exec_parse@basic-allowed.html
* igt@gen9_exec_parse@basic-rejected:
- shard-tglu-9: NOTRUN -> [SKIP][21] ([i915#2527] / [i915#2856]) +1 similar issue
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@gen9_exec_parse@basic-rejected.html
* igt@gen9_exec_parse@bb-chained:
- shard-tglu-10: NOTRUN -> [SKIP][22] ([i915#2527] / [i915#2856])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@gen9_exec_parse@bb-chained.html
* igt@i915_pm_backlight@bad-brightness:
- shard-tglu-9: NOTRUN -> [SKIP][23] ([i915#7561])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@i915_pm_backlight@bad-brightness.html
* igt@i915_pm_backlight@fade:
- shard-tglu-10: NOTRUN -> [SKIP][24] ([i915#7561])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@i915_pm_backlight@fade.html
* igt@i915_pm_dc@dc9-dpms:
- shard-tglu-9: NOTRUN -> [SKIP][25] ([i915#4281])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_freq_mult@media-freq@gt0:
- shard-tglu-10: NOTRUN -> [SKIP][26] ([i915#6590])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@i915_pm_freq_mult@media-freq@gt0.html
* igt@i915_pm_rc6_residency@rc6-idle@rcs0:
- shard-tglu-10: NOTRUN -> [WARN][27] ([i915#2681]) +2 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
* igt@i915_pm_rc6_residency@rc6-idle@vecs0:
- shard-tglu-10: NOTRUN -> [FAIL][28] ([i915#2681] / [i915#3591])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html
* igt@i915_pm_rpm@dpms-lpsp:
- shard-tglu-9: NOTRUN -> [SKIP][29] ([i915#1397])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@i915_pm_rpm@dpms-lpsp.html
* igt@i915_pm_rpm@i2c:
- shard-tglu-9: NOTRUN -> [SKIP][30] ([i915#3547])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@i915_pm_rpm@i2c.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
- shard-tglu-9: NOTRUN -> [SKIP][31] ([fdo#111644] / [i915#1397])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
* igt@i915_pm_rps@engine-order:
- shard-apl: [PASS][32] -> [FAIL][33] ([i915#6537])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-apl6/igt@i915_pm_rps@engine-order.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-apl6/igt@i915_pm_rps@engine-order.html
* igt@i915_query@query-topology-unsupported:
- shard-tglu-10: NOTRUN -> [SKIP][34] ([fdo#109302])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@i915_query@query-topology-unsupported.html
* igt@kms_atomic_transition@modeset-transition:
- shard-tglu-9: NOTRUN -> [SKIP][35] ([i915#1845]) +9 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_atomic_transition@modeset-transition.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-180:
- shard-tglu-10: NOTRUN -> [SKIP][36] ([i915#5286]) +1 similar issue
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-tglu-10: NOTRUN -> [SKIP][37] ([fdo#111614])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-270:
- shard-tglu-10: NOTRUN -> [SKIP][38] ([fdo#111615]) +2 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html
* igt@kms_big_joiner@basic:
- shard-tglu-9: NOTRUN -> [SKIP][39] ([i915#2705])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_big_joiner@basic.html
* igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs:
- shard-tglu-10: NOTRUN -> [SKIP][40] ([i915#3689]) +4 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs.html
* igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc:
- shard-tglu-10: NOTRUN -> [SKIP][41] ([i915#3689] / [i915#6095]) +4 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
- shard-tglu-10: NOTRUN -> [SKIP][42] ([i915#3689] / [i915#3886])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
- shard-glk: NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#3886]) +3 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-glk7/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-yf_tiled_ccs:
- shard-tglu-9: NOTRUN -> [SKIP][44] ([fdo#111615] / [i915#1845] / [i915#7651]) +8 similar issues
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-yf_tiled_ccs.html
* igt@kms_ccs@pipe-d-ccs-on-another-bo-yf_tiled_ccs:
- shard-tglu-10: NOTRUN -> [SKIP][45] ([fdo#111615] / [i915#3689]) +2 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_ccs@pipe-d-ccs-on-another-bo-yf_tiled_ccs.html
* igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs:
- shard-tglu-10: NOTRUN -> [SKIP][46] ([i915#6095]) +1 similar issue
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs.html
* igt@kms_chamelium_audio@dp-audio:
- shard-tglu-10: NOTRUN -> [SKIP][47] ([i915#7828]) +4 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_chamelium_audio@dp-audio.html
* igt@kms_chamelium_frames@hdmi-crc-single:
- shard-tglu-9: NOTRUN -> [SKIP][48] ([i915#7828]) +3 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_chamelium_frames@hdmi-crc-single.html
* igt@kms_color@ctm-0-75@pipe-c-hdmi-a-1:
- shard-tglu-10: NOTRUN -> [FAIL][49] ([i915#315] / [i915#6946]) +3 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_color@ctm-0-75@pipe-c-hdmi-a-1.html
* igt@kms_color@ctm-max@pipe-a-hdmi-a-1:
- shard-snb: NOTRUN -> [SKIP][50] ([fdo#109271]) +33 similar issues
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-snb1/igt@kms_color@ctm-max@pipe-a-hdmi-a-1.html
* igt@kms_content_protection@content_type_change:
- shard-tglu-10: NOTRUN -> [SKIP][51] ([i915#6944] / [i915#7116] / [i915#7118])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_content_protection@content_type_change.html
* igt@kms_cursor_crc@cursor-suspend:
- shard-tglu-9: NOTRUN -> [SKIP][52] ([i915#1845] / [i915#7651]) +42 similar issues
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_cursor_crc@cursor-suspend.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
- shard-tglu-10: NOTRUN -> [SKIP][53] ([fdo#109274])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
- shard-tglu-10: NOTRUN -> [SKIP][54] ([i915#4103])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-apl: [PASS][55] -> [FAIL][56] ([i915#2346])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
- shard-tglu-9: NOTRUN -> [SKIP][57] ([i915#3528])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_dsc@dsc-with-bpc:
- shard-tglu-10: NOTRUN -> [SKIP][58] ([i915#3840])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_dsc@dsc-with-bpc.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-tglu-10: NOTRUN -> [FAIL][59] ([i915#4767])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_fence_pin_leak:
- shard-tglu-9: NOTRUN -> [SKIP][60] ([fdo#109274] / [i915#1845])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_fence_pin_leak.html
* igt@kms_flip@2x-absolute-wf_vblank:
- shard-tglu-9: NOTRUN -> [SKIP][61] ([fdo#109274] / [i915#3637] / [i915#3966])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_flip@2x-absolute-wf_vblank.html
* igt@kms_flip@2x-busy-flip:
- shard-tglu-10: NOTRUN -> [SKIP][62] ([fdo#109274] / [i915#3637]) +1 similar issue
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_flip@2x-busy-flip.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-tglu-9: NOTRUN -> [SKIP][63] ([fdo#109274] / [i915#3637]) +4 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
- shard-tglu-9: NOTRUN -> [SKIP][64] ([i915#3637]) +1 similar issue
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-tglu-10: NOTRUN -> [SKIP][65] ([i915#2587] / [i915#2672])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling:
- shard-tglu-9: NOTRUN -> [SKIP][66] ([i915#3555]) +7 similar issues
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-render:
- shard-tglu-10: NOTRUN -> [SKIP][67] ([fdo#109280]) +14 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy:
- shard-tglu-9: NOTRUN -> [SKIP][68] ([i915#1849]) +33 similar issues
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_frontbuffer_tracking@fbcpsr-modesetfrombusy.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt:
- shard-glk: NOTRUN -> [SKIP][69] ([fdo#109271]) +40 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-glk7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render:
- shard-tglu-10: NOTRUN -> [SKIP][70] ([fdo#110189]) +14 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_hdr@static-toggle-dpms:
- shard-tglu-10: NOTRUN -> [SKIP][71] ([i915#3555]) +5 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_plane_alpha_blend@alpha-transparent-fb:
- shard-tglu-9: NOTRUN -> [SKIP][72] ([i915#7128] / [i915#7294]) +1 similar issue
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_plane_alpha_blend@alpha-transparent-fb.html
* igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-a-hdmi-a-1:
- shard-tglu-10: NOTRUN -> [SKIP][73] ([i915#5176]) +3 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-5@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-a-hdmi-a-1:
- shard-tglu-10: NOTRUN -> [SKIP][74] ([i915#5235]) +3 similar issues
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-a-hdmi-a-1.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25:
- shard-tglu-9: NOTRUN -> [SKIP][75] ([i915#6953] / [i915#8152])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html
* igt@kms_psr2_sf@cursor-plane-update-sf:
- shard-tglu-9: NOTRUN -> [SKIP][76] ([fdo#111068] / [i915#658])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_psr2_sf@cursor-plane-update-sf.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-tglu-10: NOTRUN -> [SKIP][77] ([fdo#109642] / [fdo#111068] / [i915#658])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@primary_render:
- shard-tglu-9: NOTRUN -> [SKIP][78] ([fdo#110189]) +3 similar issues
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_psr@primary_render.html
* igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
- shard-tglu-10: NOTRUN -> [SKIP][79] ([i915#5289])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-tglu-10: NOTRUN -> [SKIP][80] ([fdo#111615] / [i915#5289])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
- shard-tglu-9: NOTRUN -> [SKIP][81] ([fdo#111615] / [i915#1845])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
* igt@kms_universal_plane@disable-primary-vs-flip-pipe-d:
- shard-tglu-9: NOTRUN -> [SKIP][82] ([fdo#109274]) +2 similar issues
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_universal_plane@disable-primary-vs-flip-pipe-d.html
* igt@kms_writeback@writeback-check-output:
- shard-tglu-9: NOTRUN -> [SKIP][83] ([i915#2437])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@kms_writeback@writeback-check-output.html
* igt@prime_vgem@basic-fence-flip:
- shard-tglu-9: NOTRUN -> [SKIP][84] ([fdo#109295])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@prime_vgem@basic-fence-flip.html
* igt@v3d/v3d_perfmon@create-perfmon-invalid-counters:
- shard-tglu-10: NOTRUN -> [SKIP][85] ([fdo#109315] / [i915#2575])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@v3d/v3d_perfmon@create-perfmon-invalid-counters.html
* igt@v3d/v3d_perfmon@destroy-valid-perfmon:
- shard-tglu-9: NOTRUN -> [SKIP][86] ([fdo#109315] / [i915#2575])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@v3d/v3d_perfmon@destroy-valid-perfmon.html
* igt@vc4/vc4_lookup_fail@bad-color-write:
- shard-tglu-10: NOTRUN -> [SKIP][87] ([i915#2575]) +3 similar issues
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-10/igt@vc4/vc4_lookup_fail@bad-color-write.html
* igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged:
- shard-tglu-9: NOTRUN -> [SKIP][88] ([i915#2575]) +3 similar issues
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-tglu-9/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged.html
#### Possible fixes ####
* igt@api_intel_bb@object-reloc-keep-cache:
- {shard-rkl}: [SKIP][89] ([i915#3281]) -> [PASS][90] +10 similar issues
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@api_intel_bb@object-reloc-keep-cache.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@api_intel_bb@object-reloc-keep-cache.html
* igt@drm_fdinfo@virtual-idle:
- {shard-rkl}: [FAIL][91] ([i915#7742]) -> [PASS][92] +1 similar issue
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-6/igt@drm_fdinfo@virtual-idle.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@drm_fdinfo@virtual-idle.html
* {igt@gem_barrier_race@remote-request@rcs0}:
- shard-glk: [ABORT][93] -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-glk3/igt@gem_barrier_race@remote-request@rcs0.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-glk7/igt@gem_barrier_race@remote-request@rcs0.html
* igt@gem_ctx_persistence@engines-hang@bcs0:
- {shard-rkl}: [SKIP][95] ([i915#6252]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-5/igt@gem_ctx_persistence@engines-hang@bcs0.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-1/igt@gem_ctx_persistence@engines-hang@bcs0.html
* igt@gem_eio@in-flight-suspend:
- {shard-rkl}: [FAIL][97] ([fdo#103375]) -> [PASS][98] +2 similar issues
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@gem_eio@in-flight-suspend.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@gem_eio@in-flight-suspend.html
* igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
- {shard-rkl}: [SKIP][99] ([i915#3282]) -> [PASS][100] +4 similar issues
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
* igt@gen9_exec_parse@batch-invalid-length:
- {shard-rkl}: [SKIP][101] ([i915#2527]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@gen9_exec_parse@batch-invalid-length.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@gen9_exec_parse@batch-invalid-length.html
* igt@i915_pm_dc@dc5-psr:
- {shard-rkl}: [SKIP][103] ([i915#658]) -> [PASS][104]
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@i915_pm_dc@dc5-psr.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-6/igt@i915_pm_dc@dc5-psr.html
* igt@i915_pm_dc@dc9-dpms:
- {shard-rkl}: [SKIP][105] ([i915#3361]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-5/igt@i915_pm_dc@dc9-dpms.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-4/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_rpm@modeset-lpsp-stress:
- {shard-dg1}: [SKIP][107] ([i915#1397]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-dg1-15/igt@i915_pm_rpm@modeset-lpsp-stress.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-dg1-14/igt@i915_pm_rpm@modeset-lpsp-stress.html
* igt@i915_pm_sseu@full-enable:
- {shard-rkl}: [SKIP][109] ([i915#4387]) -> [PASS][110]
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@i915_pm_sseu@full-enable.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@i915_pm_sseu@full-enable.html
* {igt@i915_power@sanity}:
- {shard-rkl}: [SKIP][111] ([i915#7984]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-6/igt@i915_power@sanity.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-5/igt@i915_power@sanity.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-glk: [FAIL][113] ([i915#2346]) -> [PASS][114] +1 similar issue
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [FAIL][115] ([i915#2122]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-glk2/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-glk2/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary:
- {shard-rkl}: [SKIP][117] ([i915#1849] / [i915#4098]) -> [PASS][118] +5 similar issues
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
* igt@kms_plane@plane-position-hole@pipe-b-planes:
- {shard-rkl}: [SKIP][119] ([i915#1849]) -> [PASS][120] +1 similar issue
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@kms_plane@plane-position-hole@pipe-b-planes.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-6/igt@kms_plane@plane-position-hole@pipe-b-planes.html
* igt@kms_psr@cursor_mmap_gtt:
- {shard-rkl}: [SKIP][121] ([i915#1072]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@kms_psr@cursor_mmap_gtt.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-6/igt@kms_psr@cursor_mmap_gtt.html
* igt@kms_rotation_crc@primary-rotation-90:
- {shard-rkl}: [SKIP][123] ([i915#1845] / [i915#4098]) -> [PASS][124] +7 similar issues
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12759/shard-rkl-4/igt@kms_rotation_crc@primary-rotation-90.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/shard-rkl-6/igt@kms_rotation_crc@primary-rotation-90.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
[i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4884]: https://gitlab.freedesktop.org/drm/intel/issues/4884
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5234]: https://gitlab.freedesktop.org/drm/intel/issues/5234
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
[i915#6355]: https://gitlab.freedesktop.org/drm/intel/issues/6355
[i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#6537]: https://gitlab.freedesktop.org/drm/intel/issues/6537
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
[i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
[i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957
[i915#7981]: https://gitlab.freedesktop.org/drm/intel/issues/7981
[i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984
[i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152
Build changes
-------------
* Linux: CI_DRM_12759 -> Patchwork_114168v1
CI-20190529: 20190529
CI_DRM_12759: 00e12ed04ecb81a67099d4c4833c86186ca7d31e @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7165: 509e7e63c6377d0fe77d1bd209857fb191f4a84c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_114168v1: 00e12ed04ecb81a67099d4c4833c86186ca7d31e @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_114168v1/index.html
[-- Attachment #2: Type: text/html, Size: 42497 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 1/2] drm/i915/guc: Improve GuC load error reporting
2023-02-17 23:47 ` [Intel-gfx] [PATCH 1/2] drm/i915/guc: Improve GuC load error reporting John.C.Harrison
@ 2023-03-03 19:09 ` Ceraolo Spurio, Daniele
0 siblings, 0 replies; 11+ messages in thread
From: Ceraolo Spurio, Daniele @ 2023-03-03 19:09 UTC (permalink / raw)
To: John.C.Harrison, Intel-GFX; +Cc: DRI-Devel
On 2/17/2023 3:47 PM, John.C.Harrison@Intel.com wrote:
> From: John Harrison <John.C.Harrison@Intel.com>
>
> There are multiple ways in which the GuC load can fail. The driver was
> reporting the status register as is, but not everyone can read the
> matrix unfiltered. So add decoding of the common error cases.
>
> Also, remove the comment about interrupt based load completion
> checking being not recommended. The interrupt was removed from the GuC
> firmware some time ago so it is no longer an option anyway. While at
> it, also abort the timeout if a known error code is reported. No need
> to keep waiting if the GuC has already given up the load.
>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
> .../gpu/drm/i915/gt/uc/abi/guc_errors_abi.h | 17 ++++
> drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 95 +++++++++++++++----
> drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h | 4 +-
> 3 files changed, 95 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h b/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
> index 8085fb1812748..750fe0c6d8529 100644
> --- a/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
> +++ b/drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
> @@ -21,6 +21,9 @@ enum intel_guc_load_status {
> INTEL_GUC_LOAD_STATUS_ERROR_DEVID_BUILD_MISMATCH = 0x02,
> INTEL_GUC_LOAD_STATUS_GUC_PREPROD_BUILD_MISMATCH = 0x03,
> INTEL_GUC_LOAD_STATUS_ERROR_DEVID_INVALID_GUCTYPE = 0x04,
> + INTEL_GUC_LOAD_STATUS_HWCONFIG_START = 0x05,
> + INTEL_GUC_LOAD_STATUS_HWCONFIG_DONE = 0x06,
> + INTEL_GUC_LOAD_STATUS_HWCONFIG_ERROR = 0x07,
> INTEL_GUC_LOAD_STATUS_GDT_DONE = 0x10,
> INTEL_GUC_LOAD_STATUS_IDT_DONE = 0x20,
> INTEL_GUC_LOAD_STATUS_LAPIC_DONE = 0x30,
> @@ -38,4 +41,18 @@ enum intel_guc_load_status {
> INTEL_GUC_LOAD_STATUS_READY = 0xF0,
> };
>
> +enum intel_bootrom_load_status {
> + INTEL_BOOTROM_STATUS_NO_KEY_FOUND = 0x13,
> + INTEL_BOOTROM_STATUS_AES_PROD_KEY_FOUND = 0x1A,
> + INTEL_BOOTROM_STATUS_RSA_FAILED = 0x50,
> + INTEL_BOOTROM_STATUS_PAVPC_FAILED = 0x73,
> + INTEL_BOOTROM_STATUS_WOPCM_FAILED = 0x74,
> + INTEL_BOOTROM_STATUS_LOADLOC_FAILED = 0x75,
> + INTEL_BOOTROM_STATUS_JUMP_PASSED = 0x76,
> + INTEL_BOOTROM_STATUS_JUMP_FAILED = 0x77,
> + INTEL_BOOTROM_STATUS_RC6CTXCONFIG_FAILED = 0x79,
> + INTEL_BOOTROM_STATUS_MPUMAP_INCORRECT = 0x7a,
nit: you've used uppercase for the other hex characters, while only this
one has a lowercase "a"
> + INTEL_BOOTROM_STATUS_EXCEPTION = 0x7E,
> +};
I've double checked the defines against the specs and they all match.
> +
> #endif /* _ABI_GUC_ERRORS_ABI_H */
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
> index 69133420c78b2..2f5942606913d 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
> @@ -88,31 +88,64 @@ static int guc_xfer_rsa(struct intel_uc_fw *guc_fw,
> /*
> * Read the GuC status register (GUC_STATUS) and store it in the
> * specified location; then return a boolean indicating whether
> - * the value matches either of two values representing completion
> - * of the GuC boot process.
> + * the value matches either completion or a known failure code.
> *
> * This is used for polling the GuC status in a wait_for()
> * loop below.
> */
> -static inline bool guc_ready(struct intel_uncore *uncore, u32 *status)
> +static inline bool guc_load_done(struct intel_uncore *uncore, u32 *status, bool *success)
> {
> u32 val = intel_uncore_read(uncore, GUC_STATUS);
> u32 uk_val = REG_FIELD_GET(GS_UKERNEL_MASK, val);
> + u32 br_val = REG_FIELD_GET(GS_BOOTROM_MASK, val);
>
> *status = val;
> - return uk_val == INTEL_GUC_LOAD_STATUS_READY;
> + *success = true;
It feels a bit weird to default this to true. If we don't return true
from one of the switches below, we can end up returning false from the
wait but leaving success to true. I understand that this is used more as
a "not failed" flag rather than a success one, so it is functionally
correct, but maybe rename it? not a blocker.
Apart from the nits, the patch LGTM:
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Daniele
> + switch (uk_val) {
> + case INTEL_GUC_LOAD_STATUS_READY:
> + return true;
> +
> + case INTEL_GUC_LOAD_STATUS_ERROR_DEVID_BUILD_MISMATCH:
> + case INTEL_GUC_LOAD_STATUS_GUC_PREPROD_BUILD_MISMATCH:
> + case INTEL_GUC_LOAD_STATUS_ERROR_DEVID_INVALID_GUCTYPE:
> + case INTEL_GUC_LOAD_STATUS_HWCONFIG_ERROR:
> + case INTEL_GUC_LOAD_STATUS_DPC_ERROR:
> + case INTEL_GUC_LOAD_STATUS_EXCEPTION:
> + case INTEL_GUC_LOAD_STATUS_INIT_DATA_INVALID:
> + case INTEL_GUC_LOAD_STATUS_MPU_DATA_INVALID:
> + case INTEL_GUC_LOAD_STATUS_INIT_MMIO_SAVE_RESTORE_INVALID:
> + *success = false;
> + return true;
> + }
> +
> + switch (br_val) {
> + case INTEL_BOOTROM_STATUS_NO_KEY_FOUND:
> + case INTEL_BOOTROM_STATUS_RSA_FAILED:
> + case INTEL_BOOTROM_STATUS_PAVPC_FAILED:
> + case INTEL_BOOTROM_STATUS_WOPCM_FAILED:
> + case INTEL_BOOTROM_STATUS_LOADLOC_FAILED:
> + case INTEL_BOOTROM_STATUS_JUMP_FAILED:
> + case INTEL_BOOTROM_STATUS_RC6CTXCONFIG_FAILED:
> + case INTEL_BOOTROM_STATUS_MPUMAP_INCORRECT:
> + case INTEL_BOOTROM_STATUS_EXCEPTION:
> + *success = false;
> + return true;
> + }
> +
> + return false;
> }
>
> static int guc_wait_ucode(struct intel_guc *guc)
> {
> struct intel_gt *gt = guc_to_gt(guc);
> struct intel_uncore *uncore = gt->uncore;
> + bool success;
> u32 status;
> int ret;
>
> /*
> * Wait for the GuC to start up.
> - * NB: Docs recommend not using the interrupt for completion.
> + *
> * Measurements indicate this should take no more than 20ms
> * (assuming the GT clock is at maximum frequency). So, a
> * timeout here indicates that the GuC has failed and is unusable.
> @@ -127,28 +160,52 @@ static int guc_wait_ucode(struct intel_guc *guc)
> * 200ms. Even at slowest clock, this should be sufficient. And
> * in the working case, a larger timeout makes no difference.
> */
> - ret = wait_for(guc_ready(uncore, &status), 200);
> - if (ret) {
> - guc_info(guc, "load failed: status = 0x%08X\n", status);
> - guc_info(guc, "load failed: status: Reset = %d, "
> - "BootROM = 0x%02X, UKernel = 0x%02X, "
> - "MIA = 0x%02X, Auth = 0x%02X\n",
> - REG_FIELD_GET(GS_MIA_IN_RESET, status),
> - REG_FIELD_GET(GS_BOOTROM_MASK, status),
> - REG_FIELD_GET(GS_UKERNEL_MASK, status),
> - REG_FIELD_GET(GS_MIA_MASK, status),
> - REG_FIELD_GET(GS_AUTH_STATUS_MASK, status));
> -
> - if ((status & GS_BOOTROM_MASK) == GS_BOOTROM_RSA_FAILED) {
> + ret = wait_for(guc_load_done(uncore, &status, &success), 200);
> + if (ret || !success) {
> + u32 ukernel = REG_FIELD_GET(GS_UKERNEL_MASK, status);
> + u32 bootrom = REG_FIELD_GET(GS_BOOTROM_MASK, status);
> +
> + guc_info(guc, "load failed: status = 0x%08X, ret = %d\n", status, ret);
> + guc_info(guc, "load failed: status: Reset = %d, BootROM = 0x%02X, UKernel = 0x%02X, MIA = 0x%02X, Auth = 0x%02X\n",
> + REG_FIELD_GET(GS_MIA_IN_RESET, status),
> + bootrom, ukernel,
> + REG_FIELD_GET(GS_MIA_MASK, status),
> + REG_FIELD_GET(GS_AUTH_STATUS_MASK, status));
> +
> + switch (bootrom) {
> + case INTEL_BOOTROM_STATUS_NO_KEY_FOUND:
> + guc_info(guc, "invalid key requested, header = 0x%08X\n",
> + intel_uncore_read(uncore, GUC_HEADER_INFO));
> + ret = -ENOEXEC;
> + break;
> +
> + case INTEL_BOOTROM_STATUS_RSA_FAILED:
> guc_info(guc, "firmware signature verification failed\n");
> ret = -ENOEXEC;
> + break;
> }
>
> - if (REG_FIELD_GET(GS_UKERNEL_MASK, status) == INTEL_GUC_LOAD_STATUS_EXCEPTION) {
> + switch (ukernel) {
> + case INTEL_GUC_LOAD_STATUS_EXCEPTION:
> guc_info(guc, "firmware exception. EIP: %#x\n",
> intel_uncore_read(uncore, SOFT_SCRATCH(13)));
> ret = -ENXIO;
> + break;
> +
> + case INTEL_GUC_LOAD_STATUS_INIT_MMIO_SAVE_RESTORE_INVALID:
> + guc_info(guc, "illegal register in save/restore workaround list\n");
> + ret = -EPERM;
> + break;
> +
> + case INTEL_GUC_LOAD_STATUS_HWCONFIG_START:
> + guc_info(guc, "still extracting hwconfig table.\n");
> + ret = -ETIMEDOUT;
> + break;
> }
> +
> + /* Uncommon/unexpected error, see earlier status code print for details */
> + if (ret == 0)
> + ret = -ENXIO;
> }
>
> return ret;
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
> index 9915de32e894e..3fd7988375020 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
> @@ -18,8 +18,6 @@
> #define GS_MIA_IN_RESET (0x01 << GS_RESET_SHIFT)
> #define GS_BOOTROM_SHIFT 1
> #define GS_BOOTROM_MASK (0x7F << GS_BOOTROM_SHIFT)
> -#define GS_BOOTROM_RSA_FAILED (0x50 << GS_BOOTROM_SHIFT)
> -#define GS_BOOTROM_JUMP_PASSED (0x76 << GS_BOOTROM_SHIFT)
> #define GS_UKERNEL_SHIFT 8
> #define GS_UKERNEL_MASK (0xFF << GS_UKERNEL_SHIFT)
> #define GS_MIA_SHIFT 16
> @@ -32,6 +30,8 @@
> #define GS_AUTH_STATUS_BAD (0x01 << GS_AUTH_STATUS_SHIFT)
> #define GS_AUTH_STATUS_GOOD (0x02 << GS_AUTH_STATUS_SHIFT)
>
> +#define GUC_HEADER_INFO _MMIO(0xc014)
> +
> #define SOFT_SCRATCH(n) _MMIO(0xc180 + (n) * 4)
> #define SOFT_SCRATCH_COUNT 16
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading
2023-02-17 23:47 ` [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading John.C.Harrison
@ 2023-03-03 19:20 ` Ceraolo Spurio, Daniele
2023-03-11 1:01 ` John Harrison
0 siblings, 1 reply; 11+ messages in thread
From: Ceraolo Spurio, Daniele @ 2023-03-03 19:20 UTC (permalink / raw)
To: John.C.Harrison, Intel-GFX; +Cc: DRI-Devel
On 2/17/2023 3:47 PM, John.C.Harrison@Intel.com wrote:
> From: John Harrison <John.C.Harrison@Intel.com>
>
> A failure to load the GuC is occasionally observed where the GuC log
> actually showed that the GuC had loaded just fine. The implication
> being that the load just took ever so slightly longer than the 200ms
> timeout. Given that the actual time should be tens of milliseconds at
> the slowest, this should never happen. So far the issue has generally
> been caused by a bad IFWI resulting in low frequencies during boot
> (depsite the KMD requesting max frequency). However, the issue seems
> to happen more often than one would like.
>
> So a) increase the timeout so that the user still gets a working
> system even in the case of slow load. And b) report the frequency
> during the load to see if that is the case of the slow down.
Some refs would be good here. From a quick search, these seems to match:
https://gitlab.freedesktop.org/drm/intel/-/issues/7931
https://gitlab.freedesktop.org/drm/intel/-/issues/8060
https://gitlab.freedesktop.org/drm/intel/-/issues/8083
https://gitlab.freedesktop.org/drm/intel/-/issues/8136
https://gitlab.freedesktop.org/drm/intel/-/issues/8137
>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
> drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 37 +++++++++++++++++++++--
> 1 file changed, 34 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
> index 2f5942606913d..72e003f50617d 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
> @@ -12,6 +12,7 @@
> #include "gt/intel_gt.h"
> #include "gt/intel_gt_mcr.h"
> #include "gt/intel_gt_regs.h"
> +#include "gt/intel_rps.h"
> #include "intel_guc_fw.h"
> #include "intel_guc_print.h"
> #include "i915_drv.h"
> @@ -139,9 +140,12 @@ static int guc_wait_ucode(struct intel_guc *guc)
> {
> struct intel_gt *gt = guc_to_gt(guc);
> struct intel_uncore *uncore = gt->uncore;
> + ktime_t before, after, delta;
> bool success;
> u32 status;
> - int ret;
> + int ret, count;
> + u64 delta_ms;
> + u32 before_freq;
>
> /*
> * Wait for the GuC to start up.
> @@ -159,13 +163,32 @@ static int guc_wait_ucode(struct intel_guc *guc)
> * issues to be resolved. In the meantime bump the timeout to
> * 200ms. Even at slowest clock, this should be sufficient. And
> * in the working case, a larger timeout makes no difference.
> + *
> + * IFWI updates have also been seen to cause sporadic failures due to
> + * the requested frequency not being granted and thus the firmware
> + * load is attempted at minimum frequency. That can lead to load times
> + * in the seconds range. However, there is a limit on how long an
> + * individual wait_for() can wait. So wrap it in a loop.
> */
> - ret = wait_for(guc_load_done(uncore, &status, &success), 200);
> + before_freq = intel_rps_read_actual_frequency(&uncore->gt->rps);
> + before = ktime_get();
> + for (count = 0; count < 20; count++) {
> + ret = wait_for(guc_load_done(uncore, &status, &success), 1000);
Isn't 20 secs a bit too long for an in-place wait? I get that if the GuC
doesn't load (or fail to) within a few secs the HW is likely toast, but
still that seems a bit too long to me. What's the worst case load time
ever observed? I suggest reducing the wait to 3 secs as a compromise, if
that's bigger than the worst case.
The patch LGTM apart from this point.
Daniele
> + if (!ret || !success)
> + break;
> +
> + guc_dbg(guc, "load still in progress, count = %d, freq = %dMHz\n",
> + count, intel_rps_read_actual_frequency(&uncore->gt->rps));
> + }
> + after = ktime_get();
> + delta = ktime_sub(after, before);
> + delta_ms = ktime_to_ms(delta);
> if (ret || !success) {
> u32 ukernel = REG_FIELD_GET(GS_UKERNEL_MASK, status);
> u32 bootrom = REG_FIELD_GET(GS_BOOTROM_MASK, status);
>
> - guc_info(guc, "load failed: status = 0x%08X, ret = %d\n", status, ret);
> + guc_info(guc, "load failed: status = 0x%08X, time = %lldms, freq = %dMHz, ret = %d\n",
> + status, delta_ms, intel_rps_read_actual_frequency(&uncore->gt->rps), ret);
> guc_info(guc, "load failed: status: Reset = %d, BootROM = 0x%02X, UKernel = 0x%02X, MIA = 0x%02X, Auth = 0x%02X\n",
> REG_FIELD_GET(GS_MIA_IN_RESET, status),
> bootrom, ukernel,
> @@ -206,6 +229,14 @@ static int guc_wait_ucode(struct intel_guc *guc)
> /* Uncommon/unexpected error, see earlier status code print for details */
> if (ret == 0)
> ret = -ENXIO;
> + } else if (delta_ms > 200) {
> + guc_warn(guc, "excessive init time: %lldms! [freq = %dMHz, before = %dMHz, status = 0x%08X, count = %d, ret = %d]\n",
> + delta_ms, intel_rps_read_actual_frequency(&uncore->gt->rps),
> + before_freq, status, count, ret);
> + } else {
> + guc_dbg(guc, "init took %lldms, freq = %dMHz, before = %dMHz, status = 0x%08X, count = %d, ret = %d\n",
> + delta_ms, intel_rps_read_actual_frequency(&uncore->gt->rps),
> + before_freq, status, count, ret);
> }
>
> return ret;
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading
2023-03-03 19:20 ` Ceraolo Spurio, Daniele
@ 2023-03-11 1:01 ` John Harrison
2023-03-13 23:55 ` Dixit, Ashutosh
2023-03-15 21:30 ` Ceraolo Spurio, Daniele
0 siblings, 2 replies; 11+ messages in thread
From: John Harrison @ 2023-03-11 1:01 UTC (permalink / raw)
To: Ceraolo Spurio, Daniele, Intel-GFX; +Cc: DRI-Devel
On 3/3/2023 11:20, Ceraolo Spurio, Daniele wrote:
> On 2/17/2023 3:47 PM, John.C.Harrison@Intel.com wrote:
>> From: John Harrison <John.C.Harrison@Intel.com>
>>
>> A failure to load the GuC is occasionally observed where the GuC log
>> actually showed that the GuC had loaded just fine. The implication
>> being that the load just took ever so slightly longer than the 200ms
>> timeout. Given that the actual time should be tens of milliseconds at
>> the slowest, this should never happen. So far the issue has generally
>> been caused by a bad IFWI resulting in low frequencies during boot
>> (depsite the KMD requesting max frequency). However, the issue seems
>> to happen more often than one would like.
>>
>> So a) increase the timeout so that the user still gets a working
>> system even in the case of slow load. And b) report the frequency
>> during the load to see if that is the case of the slow down.
>
> Some refs would be good here. From a quick search, these seems to match:
>
> https://gitlab.freedesktop.org/drm/intel/-/issues/7931
> https://gitlab.freedesktop.org/drm/intel/-/issues/8060
> https://gitlab.freedesktop.org/drm/intel/-/issues/8083
> https://gitlab.freedesktop.org/drm/intel/-/issues/8136
> https://gitlab.freedesktop.org/drm/intel/-/issues/8137
Should these have a prefix tag? If so, what? 'closes' is not entirely
accurate. This patch is just to help with debug of the underlying issue.
And if the timeout is reduced then it won't necessarily allow a slow
system to work. See below.
>
>>
>> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
>> ---
>> drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 37 +++++++++++++++++++++--
>> 1 file changed, 34 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>> b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>> index 2f5942606913d..72e003f50617d 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>> @@ -12,6 +12,7 @@
>> #include "gt/intel_gt.h"
>> #include "gt/intel_gt_mcr.h"
>> #include "gt/intel_gt_regs.h"
>> +#include "gt/intel_rps.h"
>> #include "intel_guc_fw.h"
>> #include "intel_guc_print.h"
>> #include "i915_drv.h"
>> @@ -139,9 +140,12 @@ static int guc_wait_ucode(struct intel_guc *guc)
>> {
>> struct intel_gt *gt = guc_to_gt(guc);
>> struct intel_uncore *uncore = gt->uncore;
>> + ktime_t before, after, delta;
>> bool success;
>> u32 status;
>> - int ret;
>> + int ret, count;
>> + u64 delta_ms;
>> + u32 before_freq;
>> /*
>> * Wait for the GuC to start up.
>> @@ -159,13 +163,32 @@ static int guc_wait_ucode(struct intel_guc *guc)
>> * issues to be resolved. In the meantime bump the timeout to
>> * 200ms. Even at slowest clock, this should be sufficient. And
>> * in the working case, a larger timeout makes no difference.
>> + *
>> + * IFWI updates have also been seen to cause sporadic failures
>> due to
>> + * the requested frequency not being granted and thus the firmware
>> + * load is attempted at minimum frequency. That can lead to load
>> times
>> + * in the seconds range. However, there is a limit on how long an
>> + * individual wait_for() can wait. So wrap it in a loop.
>> */
>> - ret = wait_for(guc_load_done(uncore, &status, &success), 200);
>> + before_freq = intel_rps_read_actual_frequency(&uncore->gt->rps);
>> + before = ktime_get();
>> + for (count = 0; count < 20; count++) {
>> + ret = wait_for(guc_load_done(uncore, &status, &success), 1000);
>
> Isn't 20 secs a bit too long for an in-place wait? I get that if the
> GuC doesn't load (or fail to) within a few secs the HW is likely
> toast, but still that seems a bit too long to me. What's the worst
> case load time ever observed? I suggest reducing the wait to 3 secs as
> a compromise, if that's bigger than the worst case.
I can drop it to 3 for normal builds and keep 20 for
CONFIG_DRM_I915_DEBUG_GEM builds. However, that won't actually be long
enough for all slow situations. We have seen times of at least 11s when
the GPU is running at minimum frequency. So, for CI runs we definitely
want to keep the 20s limit. For end users? Is it better to wait for up
to 20s or to boot in display only fallback mode? And note that this is a
timeout only. A functional system will still complete in tens of
milliseconds.
John.
>
> The patch LGTM apart from this point.
>
> Daniele
>
>> + if (!ret || !success)
>> + break;
>> +
>> + guc_dbg(guc, "load still in progress, count = %d, freq =
>> %dMHz\n",
>> + count, intel_rps_read_actual_frequency(&uncore->gt->rps));
>> + }
>> + after = ktime_get();
>> + delta = ktime_sub(after, before);
>> + delta_ms = ktime_to_ms(delta);
>> if (ret || !success) {
>> u32 ukernel = REG_FIELD_GET(GS_UKERNEL_MASK, status);
>> u32 bootrom = REG_FIELD_GET(GS_BOOTROM_MASK, status);
>> - guc_info(guc, "load failed: status = 0x%08X, ret = %d\n",
>> status, ret);
>> + guc_info(guc, "load failed: status = 0x%08X, time = %lldms,
>> freq = %dMHz, ret = %d\n",
>> + status, delta_ms,
>> intel_rps_read_actual_frequency(&uncore->gt->rps), ret);
>> guc_info(guc, "load failed: status: Reset = %d, BootROM =
>> 0x%02X, UKernel = 0x%02X, MIA = 0x%02X, Auth = 0x%02X\n",
>> REG_FIELD_GET(GS_MIA_IN_RESET, status),
>> bootrom, ukernel,
>> @@ -206,6 +229,14 @@ static int guc_wait_ucode(struct intel_guc *guc)
>> /* Uncommon/unexpected error, see earlier status code print
>> for details */
>> if (ret == 0)
>> ret = -ENXIO;
>> + } else if (delta_ms > 200) {
>> + guc_warn(guc, "excessive init time: %lldms! [freq = %dMHz,
>> before = %dMHz, status = 0x%08X, count = %d, ret = %d]\n",
>> + delta_ms,
>> intel_rps_read_actual_frequency(&uncore->gt->rps),
>> + before_freq, status, count, ret);
>> + } else {
>> + guc_dbg(guc, "init took %lldms, freq = %dMHz, before =
>> %dMHz, status = 0x%08X, count = %d, ret = %d\n",
>> + delta_ms,
>> intel_rps_read_actual_frequency(&uncore->gt->rps),
>> + before_freq, status, count, ret);
>> }
>> return ret;
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading
2023-03-11 1:01 ` John Harrison
@ 2023-03-13 23:55 ` Dixit, Ashutosh
2023-03-15 21:30 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 11+ messages in thread
From: Dixit, Ashutosh @ 2023-03-13 23:55 UTC (permalink / raw)
To: John Harrison; +Cc: Intel-GFX, DRI-Devel
On Fri, 10 Mar 2023 17:01:42 -0800, John Harrison wrote:
>
> >> + for (count = 0; count < 20; count++) {
> >> + ret = wait_for(guc_load_done(uncore, &status, &success), 1000);
> >
> > Isn't 20 secs a bit too long for an in-place wait? I get that if the GuC
> > doesn't load (or fail to) within a few secs the HW is likely toast, but
> > still that seems a bit too long to me. What's the worst case load time
> > ever observed? I suggest reducing the wait to 3 secs as a compromise, if
> > that's bigger than the worst case.
>
> I can drop it to 3 for normal builds and keep 20 for
> CONFIG_DRM_I915_DEBUG_GEM builds. However, that won't actually be long
> enough for all slow situations. We have seen times of at least 11s when the
> GPU is running at minimum frequency. So, for CI runs we definitely want to
> keep the 20s limit. For end users? Is it better to wait for up to 20s or to
> boot in display only fallback mode? And note that this is a timeout only. A
> functional system will still complete in tens of milliseconds.
Just FYI, in this related patch:
https://patchwork.freedesktop.org/series/115003/#rev2
I am holding a mutex across GuC FW load, so very unlikely, but worst case a
thread can get blocked for the duration of the GuC reset/FW load.
Ashutosh
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading
2023-03-11 1:01 ` John Harrison
2023-03-13 23:55 ` Dixit, Ashutosh
@ 2023-03-15 21:30 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 11+ messages in thread
From: Ceraolo Spurio, Daniele @ 2023-03-15 21:30 UTC (permalink / raw)
To: John Harrison, Intel-GFX; +Cc: DRI-Devel
On 3/10/2023 5:01 PM, John Harrison wrote:
> On 3/3/2023 11:20, Ceraolo Spurio, Daniele wrote:
>> On 2/17/2023 3:47 PM, John.C.Harrison@Intel.com wrote:
>>> From: John Harrison <John.C.Harrison@Intel.com>
>>>
>>> A failure to load the GuC is occasionally observed where the GuC log
>>> actually showed that the GuC had loaded just fine. The implication
>>> being that the load just took ever so slightly longer than the 200ms
>>> timeout. Given that the actual time should be tens of milliseconds at
>>> the slowest, this should never happen. So far the issue has generally
>>> been caused by a bad IFWI resulting in low frequencies during boot
>>> (depsite the KMD requesting max frequency). However, the issue seems
>>> to happen more often than one would like.
>>>
>>> So a) increase the timeout so that the user still gets a working
>>> system even in the case of slow load. And b) report the frequency
>>> during the load to see if that is the case of the slow down.
>>
>> Some refs would be good here. From a quick search, these seems to match:
>>
>> https://gitlab.freedesktop.org/drm/intel/-/issues/7931
>> https://gitlab.freedesktop.org/drm/intel/-/issues/8060
>> https://gitlab.freedesktop.org/drm/intel/-/issues/8083
>> https://gitlab.freedesktop.org/drm/intel/-/issues/8136
>> https://gitlab.freedesktop.org/drm/intel/-/issues/8137
> Should these have a prefix tag? If so, what? 'closes' is not entirely
> accurate. This patch is just to help with debug of the underlying
> issue. And if the timeout is reduced then it won't necessarily allow a
> slow system to work. See below.
>
For bugs we usually use either "References:" or "Closes:". I think the
former fits more for this case.
>
>>
>>>
>>> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
>>> ---
>>> drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c | 37
>>> +++++++++++++++++++++--
>>> 1 file changed, 34 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>>> b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>>> index 2f5942606913d..72e003f50617d 100644
>>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c
>>> @@ -12,6 +12,7 @@
>>> #include "gt/intel_gt.h"
>>> #include "gt/intel_gt_mcr.h"
>>> #include "gt/intel_gt_regs.h"
>>> +#include "gt/intel_rps.h"
>>> #include "intel_guc_fw.h"
>>> #include "intel_guc_print.h"
>>> #include "i915_drv.h"
>>> @@ -139,9 +140,12 @@ static int guc_wait_ucode(struct intel_guc *guc)
>>> {
>>> struct intel_gt *gt = guc_to_gt(guc);
>>> struct intel_uncore *uncore = gt->uncore;
>>> + ktime_t before, after, delta;
>>> bool success;
>>> u32 status;
>>> - int ret;
>>> + int ret, count;
>>> + u64 delta_ms;
>>> + u32 before_freq;
>>> /*
>>> * Wait for the GuC to start up.
>>> @@ -159,13 +163,32 @@ static int guc_wait_ucode(struct intel_guc *guc)
>>> * issues to be resolved. In the meantime bump the timeout to
>>> * 200ms. Even at slowest clock, this should be sufficient. And
>>> * in the working case, a larger timeout makes no difference.
>>> + *
>>> + * IFWI updates have also been seen to cause sporadic failures
>>> due to
>>> + * the requested frequency not being granted and thus the firmware
>>> + * load is attempted at minimum frequency. That can lead to
>>> load times
>>> + * in the seconds range. However, there is a limit on how long an
>>> + * individual wait_for() can wait. So wrap it in a loop.
>>> */
>>> - ret = wait_for(guc_load_done(uncore, &status, &success), 200);
>>> + before_freq = intel_rps_read_actual_frequency(&uncore->gt->rps);
>>> + before = ktime_get();
>>> + for (count = 0; count < 20; count++) {
>>> + ret = wait_for(guc_load_done(uncore, &status, &success),
>>> 1000);
>>
>> Isn't 20 secs a bit too long for an in-place wait? I get that if the
>> GuC doesn't load (or fail to) within a few secs the HW is likely
>> toast, but still that seems a bit too long to me. What's the worst
>> case load time ever observed? I suggest reducing the wait to 3 secs
>> as a compromise, if that's bigger than the worst case.
> I can drop it to 3 for normal builds and keep 20 for
> CONFIG_DRM_I915_DEBUG_GEM builds. However, that won't actually be long
> enough for all slow situations. We have seen times of at least 11s
> when the GPU is running at minimum frequency. So, for CI runs we
> definitely want to keep the 20s limit. For end users? Is it better to
> wait for up to 20s or to boot in display only fallback mode? And note
> that this is a timeout only. A functional system will still complete
> in tens of milliseconds.
I'd argue that the only way for us to go to multiple seconds is if the
frequency goes below the efficient levels, which normally should only
happen if the card cooling fails and the temperature goes out of
control, in which case there are more pressing issues than a GuC load
failure. I agree that having 3 secs normal and 20 for CI is a good
compromise and if we ever see a very long timeout in CI we can
investigate more.
Daniele
>
> John.
>
>>
>> The patch LGTM apart from this point.
>>
>> Daniele
>>
>>> + if (!ret || !success)
>>> + break;
>>> +
>>> + guc_dbg(guc, "load still in progress, count = %d, freq =
>>> %dMHz\n",
>>> + count, intel_rps_read_actual_frequency(&uncore->gt->rps));
>>> + }
>>> + after = ktime_get();
>>> + delta = ktime_sub(after, before);
>>> + delta_ms = ktime_to_ms(delta);
>>> if (ret || !success) {
>>> u32 ukernel = REG_FIELD_GET(GS_UKERNEL_MASK, status);
>>> u32 bootrom = REG_FIELD_GET(GS_BOOTROM_MASK, status);
>>> - guc_info(guc, "load failed: status = 0x%08X, ret = %d\n",
>>> status, ret);
>>> + guc_info(guc, "load failed: status = 0x%08X, time = %lldms,
>>> freq = %dMHz, ret = %d\n",
>>> + status, delta_ms,
>>> intel_rps_read_actual_frequency(&uncore->gt->rps), ret);
>>> guc_info(guc, "load failed: status: Reset = %d, BootROM =
>>> 0x%02X, UKernel = 0x%02X, MIA = 0x%02X, Auth = 0x%02X\n",
>>> REG_FIELD_GET(GS_MIA_IN_RESET, status),
>>> bootrom, ukernel,
>>> @@ -206,6 +229,14 @@ static int guc_wait_ucode(struct intel_guc *guc)
>>> /* Uncommon/unexpected error, see earlier status code
>>> print for details */
>>> if (ret == 0)
>>> ret = -ENXIO;
>>> + } else if (delta_ms > 200) {
>>> + guc_warn(guc, "excessive init time: %lldms! [freq = %dMHz,
>>> before = %dMHz, status = 0x%08X, count = %d, ret = %d]\n",
>>> + delta_ms,
>>> intel_rps_read_actual_frequency(&uncore->gt->rps),
>>> + before_freq, status, count, ret);
>>> + } else {
>>> + guc_dbg(guc, "init took %lldms, freq = %dMHz, before =
>>> %dMHz, status = 0x%08X, count = %d, ret = %d\n",
>>> + delta_ms,
>>> intel_rps_read_actual_frequency(&uncore->gt->rps),
>>> + before_freq, status, count, ret);
>>> }
>>> return ret;
>>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-03-15 21:30 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-17 23:47 [Intel-gfx] [PATCH 0/2] Improvements to GuC load failure handling John.C.Harrison
2023-02-17 23:47 ` [Intel-gfx] [PATCH 1/2] drm/i915/guc: Improve GuC load error reporting John.C.Harrison
2023-03-03 19:09 ` Ceraolo Spurio, Daniele
2023-02-17 23:47 ` [Intel-gfx] [PATCH 2/2] drm/i915/guc: Allow for very slow GuC loading John.C.Harrison
2023-03-03 19:20 ` Ceraolo Spurio, Daniele
2023-03-11 1:01 ` John Harrison
2023-03-13 23:55 ` Dixit, Ashutosh
2023-03-15 21:30 ` Ceraolo Spurio, Daniele
2023-02-18 0:51 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Improvements to GuC load failure handling Patchwork
2023-02-18 1:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-02-18 14:46 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).