* [PATCH v3] drm/i915: Disable RPG during live selftest
@ 2025-01-24 6:50 Badal Nilawar
2025-01-24 14:18 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Disable RPG during live selftest (rev2) Patchwork
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Badal Nilawar @ 2025-01-24 6:50 UTC (permalink / raw)
To: intel-gfx
Cc: anshuman.gupta, rodrigo.vivi, andi.shyti, andrzej.hajda,
sk.anirban, Badal Nilawar
The Forcewake timeout issue has been observed on Gen 12.0 and above. To address this,
disable Render Power-Gating (RPG) during live self-tests for these generations.
The temporary workaround 'drm/i915/mtl: do not enable render power-gating on MTL'
disables RPG globally, which is unnecessary since the issues were only seen during self-tests.
v2: take runtime pm wakeref
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9413
Fixes: 25e7976db86b ("drm/i915/mtl: do not enable render power-gating on MTL")
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Andi Shyti <andi.shyti@intel.com>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/i915/gt/intel_rc6.c | 19 ++++---------------
.../gpu/drm/i915/selftests/i915_selftest.c | 18 ++++++++++++++++++
2 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/intel_rc6.c b/drivers/gpu/drm/i915/gt/intel_rc6.c
index 9378d5901c49..9ca42589da4d 100644
--- a/drivers/gpu/drm/i915/gt/intel_rc6.c
+++ b/drivers/gpu/drm/i915/gt/intel_rc6.c
@@ -117,21 +117,10 @@ static void gen11_rc6_enable(struct intel_rc6 *rc6)
GEN6_RC_CTL_RC6_ENABLE |
GEN6_RC_CTL_EI_MODE(1);
- /*
- * BSpec 52698 - Render powergating must be off.
- * FIXME BSpec is outdated, disabling powergating for MTL is just
- * temporary wa and should be removed after fixing real cause
- * of forcewake timeouts.
- */
- if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
- pg_enable =
- GEN9_MEDIA_PG_ENABLE |
- GEN11_MEDIA_SAMPLER_PG_ENABLE;
- else
- pg_enable =
- GEN9_RENDER_PG_ENABLE |
- GEN9_MEDIA_PG_ENABLE |
- GEN11_MEDIA_SAMPLER_PG_ENABLE;
+ pg_enable =
+ GEN9_RENDER_PG_ENABLE |
+ GEN9_MEDIA_PG_ENABLE |
+ GEN11_MEDIA_SAMPLER_PG_ENABLE;
if (GRAPHICS_VER(gt->i915) >= 12 && !IS_DG1(gt->i915)) {
for (i = 0; i < I915_MAX_VCS; i++)
diff --git a/drivers/gpu/drm/i915/selftests/i915_selftest.c b/drivers/gpu/drm/i915/selftests/i915_selftest.c
index fee76c1d2f45..889281819c5b 100644
--- a/drivers/gpu/drm/i915/selftests/i915_selftest.c
+++ b/drivers/gpu/drm/i915/selftests/i915_selftest.c
@@ -23,7 +23,9 @@
#include <linux/random.h>
+#include "gt/intel_gt.h"
#include "gt/intel_gt_pm.h"
+#include "gt/intel_gt_regs.h"
#include "gt/uc/intel_gsc_fw.h"
#include "i915_driver.h"
@@ -253,11 +255,27 @@ int i915_mock_selftests(void)
int i915_live_selftests(struct pci_dev *pdev)
{
struct drm_i915_private *i915 = pdev_to_i915(pdev);
+ struct intel_uncore *uncore = &i915->uncore;
int err;
+ u32 pg_enable;
+ intel_wakeref_t wakeref;
if (!i915_selftest.live)
return 0;
+ /*
+ * FIXME Disable render powergating, this is temporary wa and should be removed
+ * after fixing real cause of forcewake timeouts.
+ */
+ with_intel_runtime_pm(uncore->rpm, wakeref) {
+ if (IS_GFX_GT_IP_RANGE(to_gt(i915), IP_VER(12, 00), IP_VER(12, 74))) {
+ pg_enable = intel_uncore_read(uncore, GEN9_PG_ENABLE);
+ if (pg_enable & GEN9_RENDER_PG_ENABLE)
+ intel_uncore_write_fw(uncore, GEN9_PG_ENABLE,
+ pg_enable & ~GEN9_RENDER_PG_ENABLE);
+ }
+ }
+
__wait_gsc_proxy_completed(i915);
__wait_gsc_huc_load_completed(i915);
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Disable RPG during live selftest (rev2)
2025-01-24 6:50 [PATCH v3] drm/i915: Disable RPG during live selftest Badal Nilawar
@ 2025-01-24 14:18 ` Patchwork
2025-01-24 14:38 ` ✗ i915.CI.BAT: failure " Patchwork
2025-01-24 18:02 ` [PATCH v3] drm/i915: Disable RPG during live selftest Rodrigo Vivi
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2025-01-24 14:18 UTC (permalink / raw)
To: Nilawar, Badal; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Disable RPG during live selftest (rev2)
URL : https://patchwork.freedesktop.org/series/143886/
State : warning
== Summary ==
Error: dim checkpatch failed
01853816d099 drm/i915: Disable RPG during live selftest
-:6: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#6:
The Forcewake timeout issue has been observed on Gen 12.0 and above. To address this,
total: 0 errors, 1 warnings, 0 checks, 61 lines checked
^ permalink raw reply [flat|nested] 4+ messages in thread
* ✗ i915.CI.BAT: failure for drm/i915: Disable RPG during live selftest (rev2)
2025-01-24 6:50 [PATCH v3] drm/i915: Disable RPG during live selftest Badal Nilawar
2025-01-24 14:18 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Disable RPG during live selftest (rev2) Patchwork
@ 2025-01-24 14:38 ` Patchwork
2025-01-24 18:02 ` [PATCH v3] drm/i915: Disable RPG during live selftest Rodrigo Vivi
2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2025-01-24 14:38 UTC (permalink / raw)
To: Nilawar, Badal; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 6114 bytes --]
== Series Details ==
Series: drm/i915: Disable RPG during live selftest (rev2)
URL : https://patchwork.freedesktop.org/series/143886/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_16017 -> Patchwork_143886v2
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_143886v2 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_143886v2, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/index.html
Participating hosts (37 -> 36)
------------------------------
Additional (1): bat-apl-1
Missing (2): bat-adlp-6 fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_143886v2:
### IGT changes ###
#### Possible regressions ####
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-dg2-9: [PASS][1] -> [ABORT][2] +1 other test abort
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-dg2-9/igt@gem_lmem_swapping@parallel-random-engines.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-dg2-9/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@i915_selftest@live@workarounds:
- bat-dg2-11: [PASS][3] -> [DMESG-FAIL][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-dg2-11/igt@i915_selftest@live@workarounds.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-dg2-11/igt@i915_selftest@live@workarounds.html
Known issues
------------
Here are the changes found in Patchwork_143886v2 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@dmabuf@all-tests@dma_fence_chain:
- fi-bsw-nick: [PASS][5] -> [INCOMPLETE][6] ([i915#12904]) +1 other test incomplete
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/fi-bsw-nick/igt@dmabuf@all-tests@dma_fence_chain.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/fi-bsw-nick/igt@dmabuf@all-tests@dma_fence_chain.html
* igt@i915_pm_rpm@module-reload:
- bat-rpls-4: [PASS][7] -> [FAIL][8] ([i915#13401])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-rpls-4/igt@i915_pm_rpm@module-reload.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-rpls-4/igt@i915_pm_rpm@module-reload.html
- bat-adls-6: [PASS][9] -> [FAIL][10] ([i915#13401])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-adls-6/igt@i915_pm_rpm@module-reload.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-adls-6/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live:
- bat-dg2-11: [PASS][11] -> [DMESG-FAIL][12] ([i915#12435])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-dg2-11/igt@i915_selftest@live.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-dg2-11/igt@i915_selftest@live.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: [PASS][13] -> [SKIP][14] ([i915#9197]) +3 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
* igt@kms_pm_backlight@basic-brightness:
- bat-apl-1: NOTRUN -> [SKIP][15] +23 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-apl-1/igt@kms_pm_backlight@basic-brightness.html
#### Possible fixes ####
* igt@i915_selftest@live@workarounds:
- bat-arlh-2: [DMESG-FAIL][16] ([i915#12061]) -> [PASS][17] +1 other test pass
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-arlh-2/igt@i915_selftest@live@workarounds.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-arlh-2/igt@i915_selftest@live@workarounds.html
- {bat-arls-6}: [DMESG-FAIL][18] ([i915#12061]) -> [PASS][19] +1 other test pass
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-arls-6/igt@i915_selftest@live@workarounds.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-arls-6/igt@i915_selftest@live@workarounds.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- bat-dg2-13: [DMESG-WARN][20] ([i915#12253]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16017/bat-dg2-13/igt@kms_chamelium_edid@hdmi-edid-read.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/bat-dg2-13/igt@kms_chamelium_edid@hdmi-edid-read.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12253]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12253
[i915#12435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12435
[i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
[i915#13401]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13401
[i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197
Build changes
-------------
* Linux: CI_DRM_16017 -> Patchwork_143886v2
CI-20190529: 20190529
CI_DRM_16017: 897537fb818365733977947214c799d61675895f @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8207: 9f36f9f9e8825a67b762630c2b31628ddcda5c10 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_143886v2: 897537fb818365733977947214c799d61675895f @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143886v2/index.html
[-- Attachment #2: Type: text/html, Size: 7124 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3] drm/i915: Disable RPG during live selftest
2025-01-24 6:50 [PATCH v3] drm/i915: Disable RPG during live selftest Badal Nilawar
2025-01-24 14:18 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Disable RPG during live selftest (rev2) Patchwork
2025-01-24 14:38 ` ✗ i915.CI.BAT: failure " Patchwork
@ 2025-01-24 18:02 ` Rodrigo Vivi
2 siblings, 0 replies; 4+ messages in thread
From: Rodrigo Vivi @ 2025-01-24 18:02 UTC (permalink / raw)
To: Badal Nilawar
Cc: intel-gfx, anshuman.gupta, andi.shyti, andrzej.hajda, sk.anirban
On Fri, Jan 24, 2025 at 08:50:23AM +0200, Badal Nilawar wrote:
> The Forcewake timeout issue has been observed on Gen 12.0 and above. To address this,
> disable Render Power-Gating (RPG) during live self-tests for these generations.
> The temporary workaround 'drm/i915/mtl: do not enable render power-gating on MTL'
> disables RPG globally, which is unnecessary since the issues were only seen during self-tests.
>
> v2: take runtime pm wakeref
>
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9413
> Fixes: 25e7976db86b ("drm/i915/mtl: do not enable render power-gating on MTL")
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Andi Shyti <andi.shyti@intel.com>
> Cc: Andrzej Hajda <andrzej.hajda@intel.com>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_rc6.c | 19 ++++---------------
> .../gpu/drm/i915/selftests/i915_selftest.c | 18 ++++++++++++++++++
> 2 files changed, 22 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_rc6.c b/drivers/gpu/drm/i915/gt/intel_rc6.c
> index 9378d5901c49..9ca42589da4d 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rc6.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rc6.c
> @@ -117,21 +117,10 @@ static void gen11_rc6_enable(struct intel_rc6 *rc6)
> GEN6_RC_CTL_RC6_ENABLE |
> GEN6_RC_CTL_EI_MODE(1);
>
> - /*
> - * BSpec 52698 - Render powergating must be off.
> - * FIXME BSpec is outdated, disabling powergating for MTL is just
> - * temporary wa and should be removed after fixing real cause
> - * of forcewake timeouts.
> - */
> - if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 74)))
> - pg_enable =
> - GEN9_MEDIA_PG_ENABLE |
> - GEN11_MEDIA_SAMPLER_PG_ENABLE;
> - else
> - pg_enable =
> - GEN9_RENDER_PG_ENABLE |
> - GEN9_MEDIA_PG_ENABLE |
> - GEN11_MEDIA_SAMPLER_PG_ENABLE;
> + pg_enable =
> + GEN9_RENDER_PG_ENABLE |
> + GEN9_MEDIA_PG_ENABLE |
> + GEN11_MEDIA_SAMPLER_PG_ENABLE;
>
> if (GRAPHICS_VER(gt->i915) >= 12 && !IS_DG1(gt->i915)) {
> for (i = 0; i < I915_MAX_VCS; i++)
> diff --git a/drivers/gpu/drm/i915/selftests/i915_selftest.c b/drivers/gpu/drm/i915/selftests/i915_selftest.c
> index fee76c1d2f45..889281819c5b 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_selftest.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_selftest.c
> @@ -23,7 +23,9 @@
>
> #include <linux/random.h>
>
> +#include "gt/intel_gt.h"
> #include "gt/intel_gt_pm.h"
> +#include "gt/intel_gt_regs.h"
> #include "gt/uc/intel_gsc_fw.h"
>
> #include "i915_driver.h"
> @@ -253,11 +255,27 @@ int i915_mock_selftests(void)
> int i915_live_selftests(struct pci_dev *pdev)
> {
> struct drm_i915_private *i915 = pdev_to_i915(pdev);
> + struct intel_uncore *uncore = &i915->uncore;
> int err;
> + u32 pg_enable;
> + intel_wakeref_t wakeref;
>
> if (!i915_selftest.live)
> return 0;
>
> + /*
> + * FIXME Disable render powergating, this is temporary wa and should be removed
> + * after fixing real cause of forcewake timeouts.
> + */
> + with_intel_runtime_pm(uncore->rpm, wakeref) {
We probably need to take the runtime pm reference in upper layers...
CI is mad around runtime pm on selftests with this patch.
> + if (IS_GFX_GT_IP_RANGE(to_gt(i915), IP_VER(12, 00), IP_VER(12, 74))) {
> + pg_enable = intel_uncore_read(uncore, GEN9_PG_ENABLE);
> + if (pg_enable & GEN9_RENDER_PG_ENABLE)
> + intel_uncore_write_fw(uncore, GEN9_PG_ENABLE,
> + pg_enable & ~GEN9_RENDER_PG_ENABLE);
We also are facing some repeated GPU hangs on selftests with this,
so we probably cannot blindly disable here?
I know our CI oscilates some time, but when different attempts gets
same results there, then we really need to believe it...
> + }
> + }
> +
> __wait_gsc_proxy_completed(i915);
> __wait_gsc_huc_load_completed(i915);
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-01-24 18:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-24 6:50 [PATCH v3] drm/i915: Disable RPG during live selftest Badal Nilawar
2025-01-24 14:18 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Disable RPG during live selftest (rev2) Patchwork
2025-01-24 14:38 ` ✗ i915.CI.BAT: failure " Patchwork
2025-01-24 18:02 ` [PATCH v3] drm/i915: Disable RPG during live selftest Rodrigo Vivi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.