diff options
| author | 2012-11-29 14:28:33 -0800 | |
|---|---|---|
| committer | 2012-11-29 14:28:33 -0800 | |
| commit | 372bb2380d4a466196aa2b6142111f1c84abd1a5 (patch) | |
| tree | c743f5560f48bb09311ee6951cb2a5fdafcc2116 | |
| parent | 84ea428d24dedc4b9a44bf6b2c9419b3545a03b8 (diff) | |
| parent | 418af9323fcb2363636bf4072c230a8adebfcc86 (diff) | |
am 418af932: am 05db19bc: Merge "trigger kernel blocked stack trace on system server watchdog" into jb-mr1.1-dev
* commit '418af9323fcb2363636bf4072c230a8adebfcc86':
trigger kernel blocked stack trace on system server watchdog
| -rw-r--r-- | services/java/com/android/server/Watchdog.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/services/java/com/android/server/Watchdog.java b/services/java/com/android/server/Watchdog.java index 8bbf923adaea..b2a8ad834dc4 100644 --- a/services/java/com/android/server/Watchdog.java +++ b/services/java/com/android/server/Watchdog.java @@ -39,6 +39,8 @@ import android.util.Log; import android.util.Slog; import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; import java.util.Calendar; @@ -439,6 +441,16 @@ public class Watchdog extends Thread { dumpKernelStackTraces(); } + // Trigger the kernel to dump all blocked threads to the kernel log + try { + FileWriter sysrq_trigger = new FileWriter("/proc/sysrq-trigger"); + sysrq_trigger.write("w"); + sysrq_trigger.close(); + } catch (IOException e) { + Slog.e(TAG, "Failed to write to /proc/sysrq-trigger"); + Slog.e(TAG, e.getMessage()); + } + // Try to add the error to the dropbox, but assuming that the ActivityManager // itself may be deadlocked. (which has happened, causing this statement to // deadlock and the watchdog as a whole to be ineffective) |