am 3a68e181: am 4ba4e03e: Merge "also add backtraces of CPUs before watchdog kills system server" into lmp-mr1-dev

* commit '3a68e1811f8d374fec04e75e34a89042ca9d1862':
  also add backtraces of CPUs before watchdog kills system server
This commit is contained in:
Guang Zhu
2014-10-31 00:29:22 +00:00
committed by Android Git Automerger

View File

@@ -415,15 +415,9 @@ 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());
}
// Trigger the kernel to dump all blocked threads, and backtraces on all CPUs to the kernel log
doSysRq('w');
doSysRq('l');
// Try to add the error to the dropbox, but assuming that the ActivityManager
// itself may be deadlocked. (which has happened, causing this statement to
@@ -488,6 +482,16 @@ public class Watchdog extends Thread {
}
}
private void doSysRq(char c) {
try {
FileWriter sysrq_trigger = new FileWriter("/proc/sysrq-trigger");
sysrq_trigger.write(c);
sysrq_trigger.close();
} catch (IOException e) {
Slog.w(TAG, "Failed to write to /proc/sysrq-trigger", e);
}
}
private File dumpKernelStackTraces() {
String tracesPath = SystemProperties.get("dalvik.vm.stack-trace-file", null);
if (tracesPath == null || tracesPath.length() == 0) {