Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b658ffa2 authored by Mark Salyzyn's avatar Mark Salyzyn
Browse files

llkd: check stack for wait_on_page_bit_killable

User process in S state blocked by deadlock in I/O system

wait_on_page_bit is covered by regular D state tracking.

Bug: 120776455
Test: long term stability on multiple devices
Change-Id: Icdb99b8095f384cb440f0f2bdeba86c5991b9ef4
parent 22e05fb5
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -135,8 +135,9 @@ Only active on userdebug or eng builds.
default 2 minutes samples of threads for D or Z.

#### ro.llk.stack
default cma_alloc,__get_user_pages,bit_wait_io comma separated list of kernel
symbols.  The string "*false*" is the equivalent to an *empty* list.
default cma_alloc,__get_user_pages,bit_wait_io,wait_on_page_bit_killable
comma separated list of kernel symbols.
The string "*false*" is the equivalent to an *empty* list.
Look for kernel stack symbols that if ever persistently present can
indicate a subsystem is locked up.
Beware, check does not on purpose do forward scheduling ABA except by polling
+2 −1
Original line number Diff line number Diff line
@@ -50,7 +50,8 @@ unsigned llkCheckMilliseconds(void);
/* LLK_CHECK_MS_DEFAULT = actual timeout_ms / LLK_CHECKS_PER_TIMEOUT_DEFAULT */
#define LLK_CHECKS_PER_TIMEOUT_DEFAULT 5
#define LLK_CHECK_STACK_PROPERTY       "ro.llk.stack"
#define LLK_CHECK_STACK_DEFAULT        "cma_alloc,__get_user_pages,bit_wait_io"
#define LLK_CHECK_STACK_DEFAULT        \
    "cma_alloc,__get_user_pages,bit_wait_io,wait_on_page_bit_killable"
#define LLK_BLACKLIST_PROCESS_PROPERTY "ro.llk.blacklist.process"
#define LLK_BLACKLIST_PROCESS_DEFAULT  \
    "0,1,2,init,[kthreadd],[khungtaskd],lmkd,llkd,watchdogd,[watchdogd],[watchdogd/0]"