summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Salyzyn <salyzyn@google.com>2018-10-31 16:03:45 -0700
committerMark Salyzyn <salyzyn@google.com>2018-11-01 08:13:53 -0700
commit53e782d5315578f9bf8a11df1df9bae588da3f98 (patch)
tree6e15b499e5df42990466aa9b45470e45bb6befc6
parentbd7c856507cd10221cadb8757b865cf8ec974a23 (diff)
downloadsystem_core-53e782d5315578f9bf8a11df1df9bae588da3f98.tar.gz
system_core-53e782d5315578f9bf8a11df1df9bae588da3f98.tar.bz2
system_core-53e782d5315578f9bf8a11df1df9bae588da3f98.zip
llkd: Add waiting task to dump
Consider reporting d (lock dump) and w (waiting tasks) after t (stack dump) as the ramoops buffer could be overflowed. Test: compile Bug: 118712403 Change-Id: I64fac7e13c14a1cbc45c9e35fe7746f9b778dcf4
-rw-r--r--llkd/libllkd.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llkd/libllkd.cpp b/llkd/libllkd.cpp
index eec3f90a9..7140c3b47 100644
--- a/llkd/libllkd.cpp
+++ b/llkd/libllkd.cpp
@@ -524,10 +524,16 @@ void llkPanicKernel(bool dump, pid_t tid, const char* state) {
if (dump) {
// Show all locks that are held
android::base::WriteStringToFd("d", sysrqTriggerFd);
+ // Show all waiting tasks
+ android::base::WriteStringToFd("w", sysrqTriggerFd);
// This can trigger hardware watchdog, that is somewhat _ok_.
// But useless if pstore configured for <256KB, low ram devices ...
if (llkEnableSysrqT) {
android::base::WriteStringToFd("t", sysrqTriggerFd);
+ // Show all locks that are held (in case 't' overflows ramoops)
+ android::base::WriteStringToFd("d", sysrqTriggerFd);
+ // Show all waiting tasks (in case 't' overflows ramoops)
+ android::base::WriteStringToFd("w", sysrqTriggerFd);
}
::usleep(200000); // let everything settle
}