From: Greg Kroah-Hartman Date: Wed, 19 Feb 2025 10:57:58 +0000 (+0100) Subject: drop drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch X-Git-Tag: v6.1.129~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0a19b6e6dff3c44b79cf53f4028dbc9538f0dbb3;p=thirdparty%2Fkernel%2Fstable-queue.git drop drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch --- diff --git a/queue-6.12/drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch b/queue-6.12/drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch deleted file mode 100644 index e3d2c4050a..0000000000 --- a/queue-6.12/drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch +++ /dev/null @@ -1,90 +0,0 @@ -From b35eb9128ebeec534eed1cefd6b9b1b7282cf5ba Mon Sep 17 00:00:00 2001 -From: Alex Deucher -Date: Tue, 28 Jan 2025 11:55:22 -0500 -Subject: drm/amdgpu/gfx9: manually control gfxoff for CS on RV -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Alex Deucher - -commit b35eb9128ebeec534eed1cefd6b9b1b7282cf5ba upstream. - -When mesa started using compute queues more often -we started seeing additional hangs with compute queues. -Disabling gfxoff seems to mitigate that. Manually -control gfxoff and gfx pg with command submissions to avoid -any issues related to gfxoff. KFD already does the same -thing for these chips. - -v2: limit to compute -v3: limit to APUs -v4: limit to Raven/PCO -v5: only update the compute ring_funcs -v6: Disable GFX PG -v7: adjust order - -Reviewed-by: Lijo Lazar -Suggested-by: Błażej Szczygieł -Suggested-by: Sergey Kovalenko -Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3861 -Link: https://lists.freedesktop.org/archives/amd-gfx/2025-January/119116.html -Signed-off-by: Alex Deucher -Cc: stable@vger.kernel.org # 6.12.x -Signed-off-by: Greg Kroah-Hartman ---- - drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 36 ++++++++++++++++++++++++++++++++-- - 1 file changed, 34 insertions(+), 2 deletions(-) - ---- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c -@@ -7415,6 +7415,38 @@ static void gfx_v9_0_ring_emit_cleaner_s - amdgpu_ring_write(ring, 0); /* RESERVED field, programmed to zero */ - } - -+static void gfx_v9_0_ring_begin_use_compute(struct amdgpu_ring *ring) -+{ -+ struct amdgpu_device *adev = ring->adev; -+ struct amdgpu_ip_block *gfx_block = -+ amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX); -+ -+ amdgpu_gfx_enforce_isolation_ring_begin_use(ring); -+ -+ /* Raven and PCO APUs seem to have stability issues -+ * with compute and gfxoff and gfx pg. Disable gfx pg during -+ * submission and allow again afterwards. -+ */ -+ if (gfx_block && amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 1, 0)) -+ gfx_v9_0_set_powergating_state(gfx_block, AMD_PG_STATE_UNGATE); -+} -+ -+static void gfx_v9_0_ring_end_use_compute(struct amdgpu_ring *ring) -+{ -+ struct amdgpu_device *adev = ring->adev; -+ struct amdgpu_ip_block *gfx_block = -+ amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX); -+ -+ /* Raven and PCO APUs seem to have stability issues -+ * with compute and gfxoff and gfx pg. Disable gfx pg during -+ * submission and allow again afterwards. -+ */ -+ if (gfx_block && amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 1, 0)) -+ gfx_v9_0_set_powergating_state(gfx_block, AMD_PG_STATE_GATE); -+ -+ amdgpu_gfx_enforce_isolation_ring_end_use(ring); -+} -+ - static const struct amd_ip_funcs gfx_v9_0_ip_funcs = { - .name = "gfx_v9_0", - .early_init = gfx_v9_0_early_init, -@@ -7591,8 +7623,8 @@ static const struct amdgpu_ring_funcs gf - .emit_wave_limit = gfx_v9_0_emit_wave_limit, - .reset = gfx_v9_0_reset_kcq, - .emit_cleaner_shader = gfx_v9_0_ring_emit_cleaner_shader, -- .begin_use = amdgpu_gfx_enforce_isolation_ring_begin_use, -- .end_use = amdgpu_gfx_enforce_isolation_ring_end_use, -+ .begin_use = gfx_v9_0_ring_begin_use_compute, -+ .end_use = gfx_v9_0_ring_end_use_compute, - }; - - static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_kiq = { diff --git a/queue-6.12/series b/queue-6.12/series index 9e6d1d923a..37fdf78afa 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -94,7 +94,6 @@ kbuild-use-fzero-init-padding-bits-all.patch batman-adv-fix-panic-during-interface-removal.patch batman-adv-ignore-neighbor-throughput-metrics-in-error-case.patch batman-adv-drop-unmanaged-elp-metric-worker.patch -drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch drm-amdgpu-bump-version-for-rv-pco-compute-fix.patch drm-amdgpu-avoid-buffer-overflow-attach-in-smu_sys_set_pp_table.patch kvm-x86-reject-hyper-v-s-send_ipi-hypercalls-if-local-apic-isn-t-in-kernel.patch diff --git a/queue-6.13/drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch b/queue-6.13/drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch deleted file mode 100644 index 749b4e0c74..0000000000 --- a/queue-6.13/drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch +++ /dev/null @@ -1,90 +0,0 @@ -From b35eb9128ebeec534eed1cefd6b9b1b7282cf5ba Mon Sep 17 00:00:00 2001 -From: Alex Deucher -Date: Tue, 28 Jan 2025 11:55:22 -0500 -Subject: drm/amdgpu/gfx9: manually control gfxoff for CS on RV -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Alex Deucher - -commit b35eb9128ebeec534eed1cefd6b9b1b7282cf5ba upstream. - -When mesa started using compute queues more often -we started seeing additional hangs with compute queues. -Disabling gfxoff seems to mitigate that. Manually -control gfxoff and gfx pg with command submissions to avoid -any issues related to gfxoff. KFD already does the same -thing for these chips. - -v2: limit to compute -v3: limit to APUs -v4: limit to Raven/PCO -v5: only update the compute ring_funcs -v6: Disable GFX PG -v7: adjust order - -Reviewed-by: Lijo Lazar -Suggested-by: Błażej Szczygieł -Suggested-by: Sergey Kovalenko -Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3861 -Link: https://lists.freedesktop.org/archives/amd-gfx/2025-January/119116.html -Signed-off-by: Alex Deucher -Cc: stable@vger.kernel.org # 6.12.x -Signed-off-by: Greg Kroah-Hartman ---- - drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 36 ++++++++++++++++++++++++++++++++-- - 1 file changed, 34 insertions(+), 2 deletions(-) - ---- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c -@@ -7439,6 +7439,38 @@ static void gfx_v9_0_ring_emit_cleaner_s - amdgpu_ring_write(ring, 0); /* RESERVED field, programmed to zero */ - } - -+static void gfx_v9_0_ring_begin_use_compute(struct amdgpu_ring *ring) -+{ -+ struct amdgpu_device *adev = ring->adev; -+ struct amdgpu_ip_block *gfx_block = -+ amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX); -+ -+ amdgpu_gfx_enforce_isolation_ring_begin_use(ring); -+ -+ /* Raven and PCO APUs seem to have stability issues -+ * with compute and gfxoff and gfx pg. Disable gfx pg during -+ * submission and allow again afterwards. -+ */ -+ if (gfx_block && amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 1, 0)) -+ gfx_v9_0_set_powergating_state(gfx_block, AMD_PG_STATE_UNGATE); -+} -+ -+static void gfx_v9_0_ring_end_use_compute(struct amdgpu_ring *ring) -+{ -+ struct amdgpu_device *adev = ring->adev; -+ struct amdgpu_ip_block *gfx_block = -+ amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX); -+ -+ /* Raven and PCO APUs seem to have stability issues -+ * with compute and gfxoff and gfx pg. Disable gfx pg during -+ * submission and allow again afterwards. -+ */ -+ if (gfx_block && amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 1, 0)) -+ gfx_v9_0_set_powergating_state(gfx_block, AMD_PG_STATE_GATE); -+ -+ amdgpu_gfx_enforce_isolation_ring_end_use(ring); -+} -+ - static const struct amd_ip_funcs gfx_v9_0_ip_funcs = { - .name = "gfx_v9_0", - .early_init = gfx_v9_0_early_init, -@@ -7615,8 +7647,8 @@ static const struct amdgpu_ring_funcs gf - .emit_wave_limit = gfx_v9_0_emit_wave_limit, - .reset = gfx_v9_0_reset_kcq, - .emit_cleaner_shader = gfx_v9_0_ring_emit_cleaner_shader, -- .begin_use = amdgpu_gfx_enforce_isolation_ring_begin_use, -- .end_use = amdgpu_gfx_enforce_isolation_ring_end_use, -+ .begin_use = gfx_v9_0_ring_begin_use_compute, -+ .end_use = gfx_v9_0_ring_end_use_compute, - }; - - static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_kiq = { diff --git a/queue-6.13/series b/queue-6.13/series index 7de9eb5d13..c3cc3944d2 100644 --- a/queue-6.13/series +++ b/queue-6.13/series @@ -113,7 +113,6 @@ batman-adv-ignore-neighbor-throughput-metrics-in-error-case.patch batman-adv-drop-unmanaged-elp-metric-worker.patch batman-adv-fix-incorrect-offset-in-batadv_tt_tvlv_ogm_handler_v1.patch drm-xe-carve-out-wopcm-portion-from-the-stolen-memory.patch -drm-amdgpu-gfx9-manually-control-gfxoff-for-cs-on-rv.patch drm-amdgpu-bump-version-for-rv-pco-compute-fix.patch drm-amdgpu-avoid-buffer-overflow-attach-in-smu_sys_set_pp_table.patch kvm-x86-reject-hyper-v-s-send_ipi-hypercalls-if-local-apic-isn-t-in-kernel.patch