summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarad Gautam <varadgautam@google.com>2023-04-19 10:39:10 +0000
committerTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-06-20 17:33:15 +0000
commitccdea694f89925f1b7bc130941c6a82aa25b8e00 (patch)
tree7a54921618c34fabec9c59d1691e7fc76a9f0cd0
parenta26b51ecfb9ac6fb8fa5b1998c7c1896ab5b1478 (diff)
downloadgpu-android-gs-lynx-5.10-u-beta4.tar.gz
If reset failed, both KMD and the hardware are in an unrecoverable state. Any future attempts to process work or reset the GPU will fail, and it may take a long time (30mins) for the device to reboot and return to normal. Collect a system ramdump and reboot the device immediately when reset fails. Bug: 276855700 Test: Simulated failed reset and checked that a ramdump was generated. Change-Id: Iba901e1654d150b834303e0caa8fba2dc468b5ac Signed-off-by: Varad Gautam <varadgautam@google.com>
-rw-r--r--mali_kbase/csf/mali_kbase_csf_reset_gpu.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/mali_kbase/csf/mali_kbase_csf_reset_gpu.c b/mali_kbase/csf/mali_kbase_csf_reset_gpu.c
index ef62c0c..b12a3b4 100644
--- a/mali_kbase/csf/mali_kbase_csf_reset_gpu.c
+++ b/mali_kbase/csf/mali_kbase_csf_reset_gpu.c
@@ -32,6 +32,8 @@
#include <csf/mali_kbase_csf_firmware_log.h>
#include "mali_kbase_config_platform.h"
+#include <soc/google/debug-snapshot.h>
+
enum kbasep_soft_reset_status {
RESET_SUCCESS = 0,
SOFT_RESET_FAILED,
@@ -224,6 +226,9 @@ static void kbase_csf_reset_end_hw_access(struct kbase_device *kbdev,
} else {
dev_err(kbdev->dev, "Reset failed to complete");
atomic_set(&kbdev->csf.reset.state, KBASE_CSF_RESET_GPU_FAILED);
+
+ /* pixel: This is unrecoverable, collect a ramdump and reboot. */
+ dbg_snapshot_emergency_reboot("mali: reset failed - unrecoverable GPU");
}
kbase_csf_scheduler_spin_unlock(kbdev, scheduler_spin_lock_flags);