diff options
author | Mark Salyzyn <salyzyn@google.com> | 2018-08-07 08:13:13 -0700 |
---|---|---|
committer | Mark Salyzyn <salyzyn@google.com> | 2018-08-30 13:53:28 -0700 |
commit | a9afe5933d628395ab01e20360f6d23d20cd9f16 (patch) | |
tree | e4d6782661e2612ed6bfc39e2633f453d653903c /fastboot/device/variables.cpp | |
parent | 96505fad80fadc64f23dc91568283c650982da77 (diff) |
llkd: Add __get_user_page stack symbol checking
Add ro.llk.stack to list a set of symbols that should rarely happen
but if persistent in multiple checks, indicates a live lock condition.
At ro.llk.stack.timeout_ms the process is sent a kill, if it remains,
then panic the kernel.
There is no ABA detection in the paths, the condition for the
stack symbol being present instantaneously must be its rarity of
being caught. If a livelock occurs in the path of the symbol, then
it is possible more than one path could be stuck in the state, but
the best candidate symbols are found underneath a lock resulting in
only one process being the culprit, and the best aim. There may be
processes that induce a look of persistence, if so the symbol is not
a candidate for checking.
The current candidate is __get_user_pages, after mm is locked,
should be a very short reference to look up a page, but can be
longer term if starved, or a condition causes a conflicting loop.
Test: compile
Bug: 33808187
Change-Id: I946e85641e59229b7491e929fcab5f1240794254
Diffstat (limited to 'fastboot/device/variables.cpp')
0 files changed, 0 insertions, 0 deletions