* [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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox